Wie kann ich das Ergebnis von zwei nach Namen sortierten Tabellen mit mysql anzeigen? - MySQL

Ich habe zwei Tabellen, jede hat eine Spalte, um den Namen zu identifizieren, wie kann ich eine Abfrage erstellen, um beide Tabellensätze nach Namen geordnet anzuzeigen

companies
id | company
1  | maxxtor
2  | bhg

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

Ich möchte, dass die Ausgabe wie folgt aussieht:

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

Antworten:

0 für die Antwort № 1

(Alle folgenden Beispiele verwenden people nicht persons weil ich nicht aufpasste, aber ich bin mir sicher, dass du es verstehen wirst.

Um Ihre Frage zu beantworten, benutzen Sie einfach a UNION mit einem ORDER BY

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

Sehen: http://sqlfiddle.com/#!2/c9e99/1

Vielleicht möchten Sie jedoch darüber nachdenken, wie Sie Daten speichern, denn einzelne Namen in einer Spalte namens "Firma" sind möglicherweise nicht der beste Weg, nachhaltigen Code zu erstellen.

Es ist vielleicht nützlich, das zu beachten, wenn UNION verwendet wird, werden die Spaltennamen aus der ersten Tabelle für die nachfolgende Tabelle verwendet, also beispielsweise wenn Sie Folgendes hatten ( 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)
);

Sie könnten die folgende Abfrage verwenden und trotzdem dieselben Ergebnisse erhalten:

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