2017-01-29 14 views
1

Я пытаюсь дать несколько псевдонимов в том же столбце, в основном, я хочу, чтобы эти два запроса, чтобы быть один:Multiple Алиас, одна колонка

SELECT name AS singlePeople FROM People 
JOIN ID FROM Numbers 
ON People.ID=Numbers.ID 
WHERE People.isMarried=f; 


SELECT name AS marriedPeople FROM People 
JOIN ID FROM Numbers 
ON People.ID=Numbers.ID 
WHERE People.isMarried=t; 

Я хочу, чтобы мои результаты выглядеть следующим образом:

singlePeople marriedPeople 
------------- -------------- 
Bob Kelly  John SMith 
John Adams 
+0

Что таблицы выглядеть? Для меня не очевидно, зачем вам «присоединяться». –

ответ

0

Выберите t1. * t2. * Из ( SELECT, имя AS singlePeople от людей РЕГИСТРИРУЙТЕСЬ ID FROM Numbers ON People.ID = Numbers.ID ГДЕ Peopl e.isMarried = е ) t1 Inner присоединиться ( ВЫБЕРИТЕ имя AS marriedPeople от людей РЕГИСТРИРУЙТЕСЬ ID FROM Numbers ON People.ID = Numbers.ID WHERE People.isMarried = т ) t2 1 = 1

+0

это не работает – pokemongirl1234

1

Этого достаточно?

SELECT (CASE WHEN p.isMarried THEN 'Married' ELSE 'Single' END) as which, 
     name 
FROM People p JOIN 
    Numbers n 
    ON p.ID = n.ID; 

Если нет, то вы можете сделать это с помощью переменных:

select max(case when not ismarried then name end) as single, 
     max(case when ismarried then name end) as married 
from (select name, p.ismarried, 
      (@rn := if(@i = ismarried, @rn + 1, 
         if(@i := ismarried, 1, 1) 
         ) 
      ) as seqnum 
     from people p join 
      numbers n 
      on p.id = n.id cross join 
      (select @i := NULL, @rn := 0) params 
     order by ismarried 
    ) pn 
group by rn; 

 Смежные вопросы

  • Нет связанных вопросов^_^