2014-11-19 4 views
1

Я выполняю объединение на двух операциях select, но результат, который я получаю, содержит случайные строки, такие как некоторые из таблицы 1 и некоторые из таблицы 2. Но я хочу получить сначала все строки из таблицы 1 и затем из таблицы 2. Я использую базу данных MySql.Объединение таблиц в MySql

Table 1 
========================== 
s_no  Name  Marks 
1  nikhil   25 

    Table 2 
==================== 
s_no Name  Marks 
1  Akhil  10 
2  Mark  20 
1  Kim  40 

Вот запрос, который я использую:

select * from (
     select t2.s_no,t2.name,t2.marks from table1 t2 
    union all 
     select t1.roll_no,t1.name,t1.marks from table1 t1 
    ) a order by s_no desc 

Вот результаты:

Actual result 
========================= 
s_no  Name  Marks 
1  Akhil  10 
1  nikhil 25 <<< 
1  kim  40 
2  mark  20 

    required result 
==================== 
s_no Name  marks 
1  Akhil  10 
1  Kim  40 
1  nikhil  25 <<< 
2  mark  20 
+0

Добавить имя также в порядке статьи – radar

ответ

1

Попробуйте это. Вам нужно добавить order by s_no,name в последнем select query

(select * from table1) 
union 
(select * from table2) order by s_no,name