我有4張桌子。如何選擇除一些項目以外的所有內容?
第一個表格中的每個項目都通過第二個和第三個表格鏈接到最後一個表格中的一些項目。
這就是:
SELECT DISTINCT a1.Name, a2.Name, st.Name, st.ID
FROM Agents a1
INNER JOIN Agents a2 ON a1.Owner = 1 AND a1.ID = a2.AgentID
INNER JOIN AgentGTP ag ON ag.AgentID = a2.ID
INNER JOIN GTP ON GTP.ID = ag.GTPID
INNER JOIN Stations st ON st.ID = GTP.StationID
我:
使用此代碼
我選擇所有合適的項目(我指的是在最後一個表黑字)需要選擇上表中的所有灰色項目。 我該怎麼做?
是的,這是完美的,正是我需要的,謝謝! 但是你可以解釋一下'RIGHT JOIN'和'WHTP GTP.ID是NULL'到底在做什麼嗎? – lucifer63
在這種情況下,Stations是「正確」表格 - 意味着所有行都會返回,無論在「左側」表格(GTP)中是否存在匹配的行。因此,在GTP中沒有匹配記錄的地方,GTP中的所有字段都將顯示爲NULL。也許這會解釋得更好一點; http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ – MarkD
這有點複雜但可以理解。 感謝您的幫助! – lucifer63