我有兩個表,每個人都有一欄,標識名稱,我怎樣才能使一個查詢,顯示這兩個表的名字記錄順序如何顯示按名稱與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
我有兩個表,每個人都有一欄,標識名稱,我怎樣才能使一個查詢,顯示這兩個表的名字記錄順序如何顯示按名稱與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
(以下所有的例子都使用people
不persons
因爲我沒有注意,但我敢肯定你會明白)
爲了回答您的問題簡單地使用UNION
與ORDER 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
謝謝!這就是我一直在尋找的! – antonioj1015
如果這是你真正想要的,那麼輸出:'SELECT * FROM公司UNION SELECT * FROM persons' – Linger