6 Stimmen

eine Tabelle mehrfach mit anderen Tabellen verbinden

Ich habe drei Tabellen:

Tabelle User( userid benutzername)

Tabelle Schlüssel( userid keyid)

Tabelle Laptop( Benutzerkennung laptopid)

Ich möchte alle Benutzer, die entweder einen Schlüssel oder einen Laptop oder beides haben. Wie schreibe ich die Abfrage so, dass sie eine Verknüpfung zwischen der Tabelle Benutzer und der Tabelle Schlüssel sowie eine Verknüpfung zwischen der Tabelle Benutzer und der Tabelle Laptop verwendet?

Das Hauptproblem ist, dass in dem tatsächlichen Szenario gibt es zwölf oder so Tabelle verbindet, etw. wie:

" select .. From a left join b on (...), c join d on (..),e,f,g where ...",

und ich sehe, dass a mit b verbunden werden könnte, und a könnte auch mit f verbunden werden. Also angenommen, ich kann die Tabellen a, b und f nicht nebeneinander erscheinen lassen, wie schreibe ich die SQL-Abfrage?

0 Stimmen

Jeder Benutzer muss einen Schlüssel oder einen Laptop haben. Oder?

0 Stimmen

U könnte richtig sein, könnte falsch sein, aber so total ein dont care! immer noch Spaß aber :)

0 Stimmen

Q1: Wollen Sie nur den Benutzer (userid) wissen oder auch, was genau er hatte? Q2: Kann ein Benutzer mehr als ein Element eines Typs haben (2 Laptops oder 3 Schlüssel)?

0voto

 SELECT * 
 FROM User
 LEFT JOIN Key ON User.id = Key.user_id
 LEFT JOIN Laptop ON User.id = Laptop.user_id
 WHERE Key.id IS NOT NULL OR Laptop.id IS NOT NULL

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X