2014-02-01 4 views
1

У меня есть таблица А:
как объединить и упорядочить две различные таблицы вместе в Mysql

id username firstname event_date 
1 Ben  lori  2014-01-27 
2 Ben  lori  2014-01-04 
3 Mary  john  2014-01-28 

У меня есть таблица B:

id username event_date 
    1 Ben  2014-01-23 
    2 Nicole 2014-01-26 

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

2 Ben  lori  2014-01-04  
      1 Ben  2014-01-23 
      2 Nicole 2014-01-26 
    1 Ben  lori  2014-01-27 
    3 Mary  john  2014-01-28 

поэтому что я могу использовать что-то вроде в то время как цикл или mysql_fetch_assoc для отображения содержимого

+0

Вы lookong для 'FULL OUTER JOIN' – carexcer

ответ

3

В принципе, вам нужно union all:

select id, username, firstname, event_date 
from ((select id, username, firstname, event_date 
     from tablea 
    ) union all 
     (select id, username, NULL as firstname, event_date 
     from tablea 
    ) 
    ) t 
order by event_date; 
+0

будет ли этот запрос отображать сортировку данных в отдельной строке? –

+0

Этот запрос будет возвращать все строки в двух таблицах, каждый в отдельной строке, отсортированные по дате. –

+0

, а затем я могу получить доступ к контенту в этой строке? например, попробуйте использовать while ($ array = mysql_fetch_assocs ($ query)) {echo $ array ['username']; } Результат будет «ben ben nicole ben marry» –

-1

Может быть, вы ищете что-то вроде этого:

SELECT * FROM tableA FULL OUTER JOIN tableB ORDER BY event_date

+0

Возможно, вы забыли, что у MySQL нет «ПОЛНОГО ВНЕШНЕГО ОБЪЕДИНЕНИЯ»? – Barmar

+0

И если это так, вам не нужно предложение 'ON', чтобы указать, как соединяются строки? Но он не хочет присоединяться к ним, он хочет, чтобы они были отдельными строками в результате. – Barmar

+0

спасибо, но кажется, что это не сработает, но спасибо:} –

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