2014-07-10 94 views
-2

我有兩個表user_id行,我想選擇出現在這兩個表中的所有用戶。也就是說,我想從兩個表中選擇不同的用戶標識,然後找到相應的用戶。我怎樣才能做到這一點?如何在一個查詢中連接三個sql表

用戶(ID,電子郵件){1,2,3,4,5,6,7,8,9,10}

表1(USER_ID){1,1,2,2,2, 1}

表2(USER_ID){1,3,4,10,10,10,10}

從表1 {1 dsitinct,2}

從表2 {1,3,4個不同的,10}

與用戶{1,2,3,4,10}加入各自的電子郵件之後

+3

能否請你分享你的表結構,一些樣本數據,你想要的結果? – Mureinik

+6

您是否知道'INNER JOIN's? –

+0

http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/ – xQbert

回答

0

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

這將返回所有本兩個表中的用戶ID。如果你有某種原因,如果你要出現在兩個表中的所有用戶ID,你可以使用SELECT DISTINCT USER_ID 的第一線

重複的ID(給你所有在任一表,使他們不必在兩者中)將INNER連接更改爲OUTER連接。

0

你可以只使用IN運營商的一對夫婦:

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