我在两个select语句上执行union,但是我得到的结果包含随机行,如表1中的一些和表2中的一些。但我想先从表1中获取所有行,然后从表2中获取。我正在使用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 :(得分:1)
试试这个。您需要在上一个order by s_no,name
select query
(select * from table1)
union
(select * from table2) order by s_no,name