嗨,我正在尝试比较基于两列的两个表。我看到表之间的用户名匹配和电子邮件地址不匹配。
这是我尝试过的:
select * from ecy t1, users t2 where t1.username = t2.username and t1.email <> t2.email
当我运行此命令时,即使他们的电子邮件相等,我也会在ecy表中获得所有用户。
谢谢。
我不会使用两个表的笛卡尔积,而是尝试使用旧的Ansi方法对其进行过滤。
SELECT u.username, u.email
FROM users u
JOIN ecy e on e.email <> u.email AND u.username = e.username
您也可以尝试使用连接的子查询选择
SELECT username, email
FROM users u
JOIN( SELECT username, email FROM ecy) t on t.username = u.username and t.email <> u.email
您想使用JOIN语法将表连接在一起而不是做笛卡尔积。JOIN语法还将允许您在连接时过滤掉数据
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句