无法找到有这个确切问题的问题。
我有2个表,我想从一个表中返回第二个表中不存在行的行。
我将举例说明。
第一张表:
teamName
联合国
运动
足球
橄榄球
第二张表:
用户名小组
加里联合
加里联合
Phil Rugby
菲尔拉格比
所以我想要做的是从第一个表中选择所有未出现在第二个表中的团队。但问题是我只希望它与用户名为Gary的行进行比较。
因此,从第一个表中选择第二个表中不存在团队名称的所有行,例如,用户名为Gary。
我设法通过左连接拉出第二个表中不存在团队名称的所有行,但是我不确定如何添加用户名等于某些内容的条件。
我意识到我可能要改变表格的结构。我愿意接受建议吗?
答案 0 :(得分:1)
如果您想找到所有没有名为Gary的球员的球队,请使用left outer join
:
select t.*
from teams t left join
userteams ut
on t.teamname = ut.teamname and ut.name = 'Gary'
where ut.username is null;
答案 1 :(得分:0)
使用NOT EXISTS
子句查找table2
SELECT t.*
FROM teams t
WHERE NOT EXISTS (SELECT 1
FROM userteams ut
WHERE t.teamname = ut.teamname
AND ut.name = 'Gary')