2017-01-18 2 views
0

Ich habe zwei Tabellen in derselben Datenbank:MYSQL - Wählen Sie, wo zwei Felder in beiden Tabellen gleich sind

T1 - 
ID 
Make 
Model 
Series 
Variant 
MSN 

T2- 
ID 
Make 
Model 
MSN 
Reg 
location 
uname 
notes 

T1 ist die Flugzeug-Tabelle und T2 ist die Logging-Tabelle. In T2 können wir viele Protokolle für jedes Flugzeug haben - so kann ich zum Beispiel ein Flugzeug mit Registrierung von G-VNEW in Manchester und Liverpool anmelden. Wenn also dieses Flugzeug zu einem späteren Zeitpunkt an ein anderes Unternehmen verkauft wird und es dann in G-DCAA wechselt, könnte ich dann das gleiche Flugzeug wieder an verschiedenen Orten wieder sehen.

Ich möchte eine Liste erstellen, die auf meiner Webseite ausgegeben wird, die alle Felder in T2 anzeigt, die gleich Make/Serial in T1 sind. Ist das in der richtigen Richtung:

Select * from T2 where T2.Make=T1.Make and T2.MSN=T1.MSN order by T2.date DESC 

Die Argumentation behined die Marke/MSN-Auswahl ist, dass Boeing/Airbus-Flugzeuge mit der gleichen MSN haben könnte, unwahrscheinlich, aber möglich.

+0

Ich sehe keine Serial in beiden Tabellen. Ist Serial ein eindeutiges Feld? Wenn ja, warum brauchst du das Make? – kojow7

+0

Hi ja meine schlechte - Serial - sollte MSN sein (Manufacturers Serial Number) Die Seriennummer könnte für zwei verschiedene Flugzeuge von zwei verschiedenen Herstellern gelten. –

+1

Ich verstehe nicht, warum Sie Make, Model in beiden duplizieren würden. ID in T1 wäre der eindeutige Primärschlüssel; Machen Sie dann eine LogID in T2, die der eindeutige Primärschlüssel von T2 wäre und auch eine ID als Spalte in T2 hätte, um sie an einen bestimmten T1-Eintrag zu binden. Oder vielleicht vermisse ich etwas .... – user3741598

Antwort

0

Sie müssen INNER JOIN hier verwenden, weil Sie andere Tabelle verwenden, um die Werte zu vergleichen.

Select * from T2 
Inner Join T1 
On T2.Make=T1.Make 
where T2.Make=T1.Make and T2.Serial=T1.Serial 
Order By T2.date DESC 

Probieren Sie es aus ... Hoffe, es wird für Sie arbeiten ... Wird auf Ihr Feedback warten.

Verwandte Themen