gpt4 book ai didi

sql-server - 当Where不满足时SQL连接返回行

转载 作者:行者123 更新时间:2023-12-02 12:41:07 25 4
gpt4 key购买 nike

我有一个 Monkeys 表和一个 Trees 表,它们具有多对多关系,由第三个 MonkeysTrees FK 表连接.

我有一个查询,它返回给定树Id的所有猴子和树:

SELECT * 
FROM Monkeys m
JOIN MonkeysTrees mt ON mt.MonkeyId = m.Id
join Trees t ON t.Id=mt.TreeId
WHERE t.Id = 1;

如果我将最后一个 WHERE 子句中的 t.Id 更改为不在 Trees 表中的 Id,我会仍然喜欢返回包含所有 Monkeys 的表,但连接字段中包含 NULL。我怎么能这么做呢?

最佳答案

您可以使用外连接,下面的 on 子句的位置产生 Monkeys left join (MonkeysTrees inside join Trees where treeid = 1)

SELECT * 
FROM Monkeys m
LEFT JOIN MonkeysTrees mt
INNER JOIN Trees t ON t.Id=mt.TreeId AND t.Id = 1
ON mt.MonkeyId = m.Id

关于sql-server - 当Where不满足时SQL连接返回行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42880038/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com