Mysql 比较一列匹配另一列不匹配的两个表

Mysql 比较一列匹配另一列不匹配的两个表,mysql,Mysql,嗨,我正在尝试比较两个基于两列的表。我想看看表和电子邮件地址之间的用户名在哪里匹配 以下是我尝试过的: select * from ecy t1, users t2 where t1.username = t2.username and t1.email <> t2.email 当我运行这个程序时,我会得到ecy表中的所有用户,即使他们的电子邮件是相等的 谢谢。我不会做两个表的笛卡尔乘积,而尝试用老的Ansi方法进行过滤 SELECT u.username, u.email FRO

嗨,我正在尝试比较两个基于两列的表。我想看看表和电子邮件地址之间的用户名在哪里匹配

以下是我尝试过的:

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执行此操作

SELECT username, email
FROM users u
JOIN( SELECT username, email FROM ecy) t on t.username = u.username and t.email <> u.email

您希望使用联接语法将表联接在一起,而不是进行笛卡尔乘积。连接语法还允许您在连接数据时过滤掉数据

您可以试试这个,我以前在mysql中没有使用过

select * from ecy t1, users t2 where t1.username = t2.username and not t1.email = t2.email

不是使用子对象的最佳解决方案queries@MKhalidJunaid我又添加了两种方法来实现它连接解决方案有意义意味着不等于您的查询应该产生正确的结果。你确定电子邮件是平等的,没有你看不到的空白吗?