我知道在這裏創建了許多線程&關於此主題。但是我真的無法得出這兩個陳述之間差異的最後一點!我的意思是,嘗試嘗試我可以達到我所需要的所有結果,但我確實沒有完全控制刀!左和內部加入區別...一次永久
我考慮自己是一個非常優秀的程序員和一個很好的SQL-ISTA,我覺得有點慚愧這個...
下面是一個例子:
- 我有一個表一個網站的頁面(「網頁」)
- 一個表與類別(「類別」)。
- 一個類別可以包含一個或多個頁面,而不是相反
- 類別可以在所有
- 不包含頁面的頁面可以是可見或不可見的網站
所以,如果我想顯示所有類別和自己的網頁,我的意思是這兩個類別與頁面,沒有,我必須做這樣的事情:
FROM category
LEFT JOIN web_page ON (web_page.category_id = category.category_id AND web_page.active = "Y")
因此,如果該類沒有網頁,我會看到web_page_id NULL的記錄的t帽子類別。
但是,如果我做的:
FROM category
LEFT JOIN web_page ON (web_page.category_id = category.category_id)
...
WHERE web_page.active = "Y"...
我將只選擇至少有一個web_page類別...但是爲什麼呢?
這只是一個例子......我想永遠理解這種差異!
謝謝。
+1對此答案。謝謝。我總是想知道JOIN或WHERE中的哪一個首先工作。 –
+1非常清楚,完整的答案。謝謝。 –