2014-02-17 55 views
0

我有兩個表,每個人都有一欄,標識名稱,我怎樣才能使一個查詢,顯示這兩個表的名字記錄順序如何顯示按名稱與mysql排序的兩個表的結果?

companies 
id | company 
1 | maxxtor 
2 | bhg 

persons 
id | company 
1 | John Thorn 
2 | Maria Smith 

我所要的輸出是這樣的:

2 | bhg 
1 | John Thorn 
2 | Maria Smith 
1 | maxxtor 
+0

如果這是你真正想要的,那麼輸出:'SELECT * FROM公司UNION SELECT * FROM persons' – Linger

回答

0

(以下所有的例子都使用peoplepersons因爲我沒有注意,但我敢肯定你會明白)

爲了回答您的問題簡單地使用UNIONORDER BY

select * from people 
UNION 
SELECT * from companies 
ORDER by company 

參見:http://sqlfiddle.com/#!2/c9e99/1

但是你可能要想想你是如何存儲數據,有一列名爲公司個人的名字可能不會創造可持續代碼的最佳方式。

它也許有用的是,當UNION從第一臺使用的列名用於後續的表,因此,例如,如果您有以下(http://sqlfiddle.com/#!2/3b761/1):

CREATE TABLE people ( 
    id int auto_increment primary key, 
    name varchar(20)  
); 
CREATE TABLE companies ( 
    id int auto_increment primary key, 
    company varchar(20) 
); 

你可以使用下面的查詢,仍然有同樣的結果:

SELECT * from people 
UNION 
SELECT * from companies 
ORDER by name 
+0

謝謝!這就是我一直在尋找的! – antonioj1015

相關問題