找到sql中两个表之间的区别

时间:2014-10-21 03:21:50

标签: sql

这个表的等价sql是什么?我想只获取all_user表中不在your_friend表中的人员姓名


Angelina Jolie
布拉德皮特 彼得帕克
克拉克肯特


表名:all_user
(用户)
安吉丽娜朱莉 布拉德皮特 彼得帕克
玛丽简
克拉克肯特
Lois Lane


表名:your_friend
(朋友)
路易斯巷
Marj Jane


select distinct * from all_user where not in (select * from your_friend where all_user.users = your_friend.friend)

这是我的答案,我在IN语法附近收到错误。

2 个答案:

答案 0 :(得分:1)

您尚未指定RDBMS。如果您的引擎支持它,EXCEPT操作就是您要找的。它评估两个查询表达式的输出,并返回结果之间的差异。结果集包含从第一个查询表达式返回的所有行,但从第二个查询表达式返回的行除外。

SELECT DISTINCT <Columns_To_Be_Included>
  FROM all_user 
EXCEPT
SELECT DISTINCT <Columns_To_Be_Included>
  FROM your_friend

但请注意,这在记录级别有效。因此,您只需指定要包含在比较中的列。

答案 1 :(得分:0)

试试这个

select distinct * from all_users where users not in (select distinct friend from your_friend)