mysql连表查询on条件_mysql 外连接的时候,条件在on后面和条件在where后面的区别...
最近使用mysql的時候碰到一個問題:當一個表外聯另一個表的時候,將一些查詢條件放在on后面和放在where后面不太一樣:
學生分數表stuscore:
當查詢語句如下(查詢語句1):
SELECT a.name,a.subject,a.score,a.stuid ,b.name,b.subject,b.score,b.stuid
FROM stuscore a
LEFT JOIN stuscore b ON a.subject=b.subject WHERE a.score >100
查詢結果如下:查詢結果為空;
當查詢語句如下時(查詢語句2):
SELECT a.name,a.subject,a.score,a.stuid ,b.name,b.subject,b.score,b.stuid
FROM stuscore a
LEFT JOIN stuscore b ON a.subject=b.subject AND a.score >100
查詢的結果如下:
:
我發現查詢結果不為空,但是后面的字段都為空。
總結原因:當條件放在on后面的時候(如查詢語句2),后面的條件作為連接條件,如果不滿足,則顯示左的一條數據,由標的查詢字段都用null填充;
當條件放在where后面的時候(如查詢語句1),后面的條件作為查詢條件,是在連表以后,再過濾的條件,只要不滿足就過濾掉,所以查詢出來的結果為空。
所以一定要知道外連接的查詢原理。
總結
以上是生活随笔為你收集整理的mysql连表查询on条件_mysql 外连接的时候,条件在on后面和条件在where后面的区别...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么从什么写短句_2020抖音文案短句:
- 下一篇: mysql中try的意思_java中tr