我有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