mysql连表查询on条件_mysql 外连接的时候,条件在on后面和条件在where后面的区别...
最近使用mysql的時(shí)候碰到一個(gè)問題:當(dāng)一個(gè)表外聯(lián)另一個(gè)表的時(shí)候,將一些查詢條件放在on后面和放在where后面不太一樣:
學(xué)生分?jǐn)?shù)表stuscore:
當(dāng)查詢語句如下(查詢語句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
查詢結(jié)果如下:查詢結(jié)果為空;
當(dāng)查詢語句如下時(shí)(查詢語句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
查詢的結(jié)果如下:
:
我發(fā)現(xiàn)查詢結(jié)果不為空,但是后面的字段都為空。
總結(jié)原因:當(dāng)條件放在on后面的時(shí)候(如查詢語句2),后面的條件作為連接條件,如果不滿足,則顯示左的一條數(shù)據(jù),由標(biāo)的查詢字段都用null填充;
當(dāng)條件放在where后面的時(shí)候(如查詢語句1),后面的條件作為查詢條件,是在連表以后,再過濾的條件,只要不滿足就過濾掉,所以查詢出來的結(jié)果為空。
所以一定要知道外連接的查詢原理。
總結(jié)
以上是生活随笔為你收集整理的mysql连表查询on条件_mysql 外连接的时候,条件在on后面和条件在where后面的区别...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 什么从什么写短句_2020抖音文案短句:
- 下一篇: easyexcel安全扫描报php,ea
