Jak wyświetlić wynik dwóch tabel uporządkowanych według nazwy za pomocą mysql? - mysql

Mam dwie tabele, każda z nich ma kolumnę do identyfikacji nazwy, w jaki sposób mogę utworzyć zapytanie wyświetlające kolejność rekordów według nazwy

companies
id | company
1  | maxxtor
2  | bhg

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

Chcę, aby wynik był jak:

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

Odpowiedzi:

0 dla odpowiedzi № 1

(Wszystkie poniższe przykłady użycia people nie persons ponieważ nie zwracałem uwagi, ale jestem pewien, że zrozumiesz)

Aby odpowiedzieć na twoje pytanie, po prostu użyj a UNION z a ORDER BY

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

Widzieć: http://sqlfiddle.com/#!2/c9e99/1

Ale warto zastanowić się, w jaki sposób przechowujesz dane, aby indywidualne nazwy w kolumnie nazwanej firmą mogły nie być najlepszym sposobem na stworzenie zrównoważonego kodu.

Warto pamiętać, że kiedy UNION jest używane nazwy kolumn z pierwszej tabeli są używane dla kolejnej tabeli, więc na przykład, jeśli masz następujące ( 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)
);

Możesz użyć następującego zapytania i nadal mieć te same wyniki:

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

Menu