您好我正在尝试根据两列比较两个表。我要查看表之间用户名匹配的位置与电子邮件地址不匹配。
以下是我的尝试:
select * from ecy t1, users t2 where t1.username = t2.username and t1.email <> t2.email
当我运行此操作时,即使他们的电子邮件相同,我也会获得ecy表中的所有用户。
感谢。
答案 0 :(得分:1)
我不会做两张表的笛卡尔积,并尝试用旧的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语法还允许您在加入数据时过滤掉数据
答案 1 :(得分:0)
你可以尝试这个,我没有使用&lt;&gt;在mysql之前。
select * from ecy t1, users t2 where t1.username = t2.username and not t1.email = t2.email