如何在一个查询中连接三个sql表

时间:2014-07-10 14:09:32

标签: sql

我有两个带有user_id行的表,我想选择出现在这两个表中的所有用户。也就是说,我想从两个表中选择不同的用户ID,然后找到相应的用户。我怎样才能做到这一点?

用户(身份证,电子邮件){1,2,3,4,5,6,7,8,9,10}

table1(user_id){1,1,2,2,2,1}

table2(user_id){1,3,4,10,10,10,10}

来自table1 {1,2}的dsitinct

与table2 {1,3,4,10}不同

用户{1,2,3,4,10}与相应的电子邮件加入后

2 个答案:

答案 0 :(得分:0)

SELECT USER_ID FROM TABLE1 INNER JOIN TABLE2 ON TABLE1.USER_ID = TABLE2.USER_ID

这将返回BOTH表中存在的所有用户ID。如果由于某种原因您有重复的ID,则可以使用SELECT DISTINCT USER_ID 第一行

如果您想要显示在任一表中的所有用户ID(在两个表中都提供所有用户ID,以便它们不必同时存在),请将INNER连接更改为OUTER连接。

答案 1 :(得分:0)

您可以使用几个IN运算符:

SELECT id, email
FROM   users
WHERE  id IN (SELECT user_id FROM table1) OR
       id IN (SELECT user_id FROM table2)