如何比较两个表并获取mysql中的列名?

时间:2015-07-08 11:51:03

标签: mysql

我有两个表,如下所示。我需要比较两个表,并且需要在mysql中获得不匹配的列名吗?

USERS
+----+------------+
| id | login_name |
+----+------------+
| 1  | Chris      |
+----+------------+
| 2  | Cherri     |
+----+------------+


USERS_TEMP
+----+------------+
| id | login_name |
+----+------------+
| 1  | Chris1     |
+----+------------+
| 2  | Cherri     |
+----+------------+

所以在我的情况下,我的预期输出是想从USERS_TEMP表返回login_name。我该怎么做?

3 个答案:

答案 0 :(得分:1)

如果您只想要不匹配的名称:

select u.id, u.login_name, ut.login_name
from users u join
     users_temp ut
     on u.id = ut.id and u.login_name <> ut.login_name;

注意:这只会查找其ID匹配的用户,这与您的问题的措辞一致。

答案 1 :(得分:1)

尝试此查询

SELECT * FROM USERS_TEMP WHERE Not EXISTS (SELECT * FROM USERS);

答案 2 :(得分:0)

使用UNION

SELECT USERS.id, USERS.login_name
FROM USERS
UNION ALL
SELECT USERS_TEMP.id, USERS_TEMP.login_name
FROM USERS_TEMP

Refer this