gpt4 book ai didi

sql - 转换为连接查询

转载 作者:行者123 更新时间:2023-12-03 03:50:40 24 4
gpt4 key购买 nike

select t.* from table1 t where t.id NOT IN(
select Id from t2 where usrId in
(select usrId from t3 where sId=value));

我需要的结果就像如果 t1 和 t2 中有匹配的 id,那么这些 id 应该被省略,并且只应该将剩余的行提供给我。我尝试转换为 join 但它给了我我想要的结果。下面是我的加入查询。

SELECT t.* FROM table1 t JOIN table2 t2 ON t.Id <> t2.Id 
JOIN table3 t3 ON t3.Id=t2.Id WHERE t3.sId= :value

这并没有给我正确的结果。它返回所有行,但我想根据表 t1 和表 t2 中的匹配 id 来限制结果。匹配的 id 应该从结果中省略。我将传递 sId 的值。

最佳答案

我相信这是使用联接对您的查询进行的准确重构。我不知道我们是否可以取消子查询,但无论如何,逻辑似乎是相同的。

select t1.*
from table1 t1
left join
(
select t2.Id
from table2 t2
inner join table3 t3
on t2.usrId = t3.usrId
where t3.sId = <value>
) t2
on t1.Id = t2.Id
where t2.Id is null

关于sql - 转换为连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44196497/

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