возвращая новую строку для каждой записи - PullRequest
0 голосов
/ 09 сентября 2011

в предыдущем вопросе Я спросил, как вернуть идентификаторы из 3 разных таблиц, если user_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 возвращали a, есть ли у каждой таблицы запись для возврата новой строки, и возвращают несколько строк, если в таблице имеется более одной записи для каждой.

Ответы [ 2 ]

2 голосов
/ 09 сентября 2011

Вот, пожалуйста. Это также вернет исходную таблицу информации.

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 голос
/ 09 сентября 2011

Я полагаю, вы хотите использовать 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...