2021-04-09
閱讀量:
527
SQL連接查詢中on and和on where的區(qū)別
一、區(qū)別
1、 and條件是在生成臨時表時使用的條件,它不管and中的條件是否為真,都會返回左(或者右)邊表中的記錄。
2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有l(wèi)eft join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。
二、例
produc表
produc_details
問題是下面兩個查詢結果有什么不同
1.SELECT * FROM product LEFT JOIN product_details
ON (product.id = product_details.id)
AND product_details.id=2;
2.SELECT * FROM product LEFT JOIN product_details
ON (product.id = product_details.id)
WHERE product_details.id=2;
結果是
1.第一條查詢結果為
2第二條查詢結果為
分析
第一條查詢使用 ON 條件決定了從 LEFT JOIN的 product_details表中檢索符合的所有數(shù)據(jù)行。
第二條查詢做了簡單的LEFT JOIN,然后使用 WHERE 子句從 LEFT JOIN的數(shù)據(jù)中過濾掉不符合條件的數(shù)據(jù)行。






評論(0)


暫無數(shù)據(jù)
推薦帖子
0條評論
0條評論
0條評論