2011-09-09 48 views
0

previous question我問了如何將user_id與每個表中的記錄進行匹配,如何從3個不同的表中返回id。 SQL-的爲每個記錄返回一個新行

select 
    (select id from bla_facebook_accts where user_id = user.user_id) as facebook, 
    (select id from bla_linked_in_accts where user_id = user.user_id) as linkedin, 
    (select id from bla_twitter_accts where user_id = user.user_id) as twitter 
from 
    (select 12 user_id) user 

偉大的作品,但我想每個返回是否每個表都有一個記錄返回一個新行的SELECT語句,並返回多行,如果表中有超過每個記錄一個。

回答

2

在這裏你去。這也將返回信息的源表。

SELECT'facebook' source, id FROM bla_facebook_accts WHERE (user_id = 12) 
UNION 
SELECT 'linkedin' source, id FROM bla_linked_in_accts WHERE (user_id = 12) 
UNION 
SELECT'twitter' source, id FROM bla_twitter_accts WHERE (user_id = 12) 
1

我相信你想使用UNION結構:

select id from bla_facebook_accts where user_id = 12 
UNION 
select id from bla_linked_in_accts where user_id = 12 
UNION 
select id from bla_twitter_accts where user_id = 12 
+0

我仍然想要有OUTER種查詢返回一個空的字段爲另外兩個表 –