MySQL Wählen Sie, Spalte mit dem gleichen Namen aus mehreren Tabellen, Reihenfolge von einer anderen Spalte mit dem gleichen Namen

8

Ich versuche Zeilen mit einem bestimmten Spaltennamen auszuwählen und sie nach einem anderen Spaltennamen zu sortieren.

Hier ist mein Problem, in N vereinfachte Tabellen:

table 1: id, username, datetime, comment

table 2: id, username, datetime, vote

.

.

.

table N: id, username, datetime, bought

Ich möchte in der Lage sein, alle Zeilen mit username='Some Name' , geordnet nach datetime - über alle N Tabellen auszuwählen.

-

Übrigens: Kennt jemand ein gutes Buch oder eine Ressource zum Lernen und Üben von fortgeschrittenem SQL? (SQLZoo versucht, aber sie haben nicht genug Vorab-Beispiele .. und dann gibt es die zu fortgeschrittenen, denen ich immer noch ratlos bin)

    
ina 27.07.2010, 08:05
quelle

5 Antworten

7

Wenn Sie versuchen, ALLE Tabellen gleichzeitig zu sortieren (ein neuerer Datensatz aus Tabelle 3 erscheint vor etwas aus Tabelle 2 usw.)

Der einfachste Weg, dies über mehrere Tabellen hinweg zu tun, wäre eine UNION:

%Vor%

Beachten Sie, dass wenn Sie eine Union wie diese verwenden, alle Ihre SELECT-Anweisungen die gleiche Anzahl von Spalten zurückgeben und denselben Namen erhalten sollen (Sie können Aliase dafür verwenden, wie ich oben in Tabelle 3 gezeigt habe)

    
AvatarKava 27.07.2010, 08:10
quelle
2

Alias ​​Ihre Tabellen in der Abfrage, dh.

%Vor%     
Janus Tøndering 27.07.2010 08:09
quelle
1

Sie können UNIONS

verwenden

Wählen muss etwas wie folgt sein:

%Vor%     
Liutas 27.07.2010 08:16
quelle
1

Sie können die gleichen Spaltennamen aus verschiedenen Tabellen auswählen wie:

%Vor%     
fabrik 27.07.2010 08:10
quelle
0
%Vor%     
radhason power 29.08.2016 11:42
quelle

Tags und Links