gpt4 book ai didi

sql - 如何有效地反转多对多 SQL 查询?

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

我有一个多对多关系,其中我查询具有特定 N 的所有 M,例如:

SELECT M.* FROM M INNER JOIN ManyToManyTable
ON M.Id = ManyToManyTable.M
WHERE ManyToManyTable.N = @Id

或者:

SELECT M.* FROM M INNER JOIN ManyToManyTable
ON M.Id = ManyToManyTable.M
INNER JOIN N
ON N.Id = ManyToManyTable.N
WHERE N.Id = @Id

我的问题是,如何有效地反转查询,以便获得没有特定 N 的所有 M

也就是说,就像上面的选择中的 NOT IN 一样,但如果可能的话,没有 NOT IN 语句。

最佳答案

在 SQL Server 中,“不存在”通常是 more efficient比 OUTER JOIN 方法。

SELECT M.* FROM M  
WHERE NOT EXISTS
(SELECT * FROM ManyToManyTable MMT
WHERE MMT.M = M.Id AND N=@Id )

关于sql - 如何有效地反转多对多 SQL 查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3227986/

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