gpt4 book ai didi

sql - 选择没有任何外键链接的行

转载 作者:行者123 更新时间:2023-12-04 01:24:35 26 4
gpt4 key购买 nike

我有 2 张 table
团体和人

人们具有链接到 Group.GroupId(主键)的 GroupId

如何选择没有任何人的组?在 t-sql 和 linq 中

谢谢你

最佳答案

更新

我已经通过 SQL Server 2005 运行了四种不同的方法来做到这一点,并包括执行计划。

-- 269 reads, 16 CPU
SELECT *
FROM Groups
WHERE NOT EXISTS (
SELECT *
FROM People
WHERE People.GroupId = Groups.GroupId
);

-- 249 reads, 15 CPU
SELECT *
FROM Groups
WHERE (
SELECT COUNT(*)
FROM People
WHERE People.GroupId = Groups.GroupId
) = 0

-- 249 reads, 14 CPU
SELECT *
FROM Groups
WHERE GroupId NOT IN (
SELECT DISTINCT GroupId
FROM Users
)

-- 10 reads, 12 CPU
SELECT *
FROM Groups
LEFT JOIN Users ON Users.GroupId = Groups.GroupId
WHERE Users.GroupId IS NULL

所以最后一个,虽然可以说是四个中最不可读的,但表现最好。

这对我来说是一个惊喜,老实说,我仍然更喜欢 WHERE NOT EXISTS 语法,因为我认为它更明确 - 它读起来与您想要做的完全一样。

关于sql - 选择没有任何外键链接的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/908849/

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