2013-07-18 7 views
0

У меня есть стол с колонкой «минута». Эти таблицы соединены с INNER JOIN. Теперь я хочу, чтобы напечатать все записи из обеих таблиц, отсортированных на обеих колонках «минуту»Сортировка записей из разных таблиц

Пример

Таблица 1: название - минут

John - 1 
Marc - 3 

Таблица 2: Название - минута

Gareth - 2 
Joe - 3 

Выход:

John, Gareth, Marc, Joe 

Две таблицы должны оставаться двумя отдельными таблицами.

+0

Вы можете проверить http://stackoverflow.com/вопросы/4069784/order-by-in-inner-join – sujikin

ответ

5

Вы должны использовать UNION: -

(SELECT * 
FROM table1) 
    UNION 
(SELECT * 
FROM table2) 

ORDER BY minute ASC 

Выход: -

john 1 
gareth 2 
marc 3 
joe  3 
-1

Не уверен, если это то, что вы ищете

SELECT name, minute FROM table1, table2 ORDER BY table1.minute,table2.minute ASC; 
+0

Состояние соединения? –

+0

это не сработает, это вызовет ошибку. – Prabhuram

+0

не думал, что если бы вы использовали соединение, вы могли бы получить два поля имени, если оба они называются join –

0

Попробуйте это:

Select name 
From table1 
Union all 
Select name 
From table2 
order by minute 
2

Попробуйте

SELECT name 
FROM 
(
    SELECT name, [minute],1 AS sort FROM Table1 
    UNION ALL 
    SELECT name, [minute],2 AS sort FROM Table2 
) T 
ORDER BY [minute],sort 

выход

name minute 
John 1 
Gareth 2 
Marc 3 
Joe  3 

ИЛИ

SELECT name, [minute] 
FROM 
(
    SELECT name, [minute] FROM Table1 
    UNION ALL 
    SELECT name, [minute] FROM Table2 
) T 
ORDER BY [minute] 

выход

name minute 
John 1 
Gareth 2 
Joe  3 
Marc 3 
Смежные вопросы