2
下表(其文檔中使用MySQL),舉個例子:
MySQL的左連接它是如何工作
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | A | 3.45 |
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | B | 1.45 |
| 0003 | C | 1.69 |
| 0003 | D | 1.25 |
| 0004 | D | 19.95 |
+---------+--------+-------+
,然後假設我們想在輸出獲得該行與最高價格usign以下查詢
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;
是其作品的權利交回表格的最後一欄(具有最高價)。
有了這個查詢我真的不明白它是如何工作的(不是左連接),但爲什麼我們有一篇文章是NULL。
我想,如果我們想要做一個左連接沒有交集,所以我們使用同樣的事情發生:
SELECT * from A LEFT JOIN B ON A.key = B.key WHERE B.key IS NULL.<br>
但是,爲什麼我們有b.key爲空,如果我們總是有該列的值?
請檢查此:http://stackoverflow.com/questions/5706437/whats-the-difference-between-inner-join-left-join-right-join-and-full-join 一切都會做一些閱讀和觀看照片後清除。 –
這張圖片doens't回答我的問題。我問爲什麼不是查詢的結果,我只知道它。 – Mattia
這是我的舊答案之一,這應該清除你的懷疑http://stackoverflow.com/questions/29944271/how-does-left-join-is-null-eliminate-records-which-are-there-in-一個表和/ 29944479#29944479 唯一的區別是這個例子是有兩個表,你有一個但邏輯相同。 –