gpt4 book ai didi

mysql:从表1中选择表2中缺少的行

转载 作者:太空宇宙 更新时间:2023-11-03 12:05:44 24 4
gpt4 key购买 nike

我已经为这段代码苦苦挣扎了一段时间。我复制了它,并从另一个 SO 问题中修改了它,但我无法让它工作。

我有一个表(分数),其中包含用户名、用户 ID 和分数。和另一个名为 userLocations 的表,其中包含用户 ID、城市、国家/地区、纬度和经度坐标。

我需要做的是列出 scores-table 中没有 userLocation 表中具有相同 userID 的行的每一行。

select scores.userID , case when userLocations.userID is not null then 1 else 0 end as row_exists from scores left outer join (select distinct userID from userLocations) userLocations on scores.userID = userLocations.userID

最佳答案

这是您的查询:

select scores.userID , case when userLocations.userID is not null then 1 else 0 end as row_exists
from scores left outer join
(select distinct userID from userLocations) userLocations
on scores.userID = userLocations.userID;

您需要一个左连接。我还提倡使用表别名来使查询更易于编写和阅读:

select s.userID , (case when ul.userID is not null then 1 else 0 end) as row_exists
from scores s left outer join
(select distinct userID from userLocations) ul
on s.userID = ul.userID;

如果您只需要 row_exists0 的行,则将 where ul.userId is NULL 添加到查询中。实际上,在这种情况下,编写查询的最佳方式是不使用子查询:

select s.userID , (case when ul.userID is not null then 1 else 0 end) as row_exists
from scores s left outer join
userLocations ul
on s.userID = ul.userID
where ul.userId is NULL;

关于mysql:从表1中选择表2中缺少的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26691073/

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