我有两个表A和B,我想选择两个表在一个列(user_id
)中是公用的,而在另一列(A.columnX != B.columnY)
中却不相似的数据。
实际上,我想要与SQL连接相反。 有人可以帮我吗?
答案 0 :(得分:3)
如果要基于进一步的逻辑过滤联接,只需使用WHERE
子句:
SELECT
table_a.something,
table_a.something_else,
table_b.another_thing
FROM table_a
INNER JOIN table_b
ON table_b.user_id = table_a.user_id
WHERE
table_a.column_x != table_b.column_y;
答案 1 :(得分:1)
您可以通过以下方式提供联接查询:
select <<Column list>> from table1 a, table2 b where a.userid=b.userid and a.columnX!=b.columnY;
答案 2 :(得分:0)
描述问题时,您似乎想要NOT EXISTS
:
SELECT a.something, a.something_else,
b.another_thing
FROM table_a a INNER JOIN
table_b b
ON b.user_id = a.user_id
WHERE NOT EXISTS (SELECT 1
FROM table_b b2
WHERE b2.user_id = b.user_id and
b2.column_y = a.column_x
);
不清楚是否要在相关子句中进行user_id
比较。