MySQL Abfrage aus 3 Tabellen

hiltwin

Mitglied
Hallo miteinander,

mir fehlt irgendwie etwas der Zugang zu MySQL-Abfragen :(

Ich habe zwei Tabellen, in denen eine grössere Menge an Datensätzen existieren.
Die Beschreibung in der desc_ Tabelle mit der Eigenschaftentabelle bekomme ich mit folgender Abfrage zusammen.

PHP:
$sql = 'SELECT L.ort, DL.ort, DL.name '
        . ' FROM ort AS L'
        . ' LEFT JOIN desc_ort AS DL ON L.ort = DL.ort'
        . ' WHERE L.ort = '.$ort.''
        . ' ORDER BY L.ort ASC ';

Nun möchte ich zusätzlich noch ermöglichen, dass in einer dritten Tabelle beschrieben wird, dass einem Nutzer nur eine bestimmte Anzahl an Datensätzen der beiden obigen Tabellen zugeordnet wird. Struktur der Tabelle wäre

nutzer | sammlung | ort
1 1 1
1 1 22
1 2 47
2 3 1


Wie muss ich die Abfrage gestalten, damit ich für die obige Left Join nur die Datensätze angezeigt bekomme, die von Nutzer 1 die Datensätze der Sammlung 1 stammen (1,22)?

Danke im voraus ...
 
Sorry, ich versteh nicht wie du die dritte, mit unbekanntem Namen, Tabelle einbinden willst.

Ich sehe nur gerade den Ort als gemeinsames Feld.
Mit Nutzer und Sammlung kommst du ja auf den Ort. Den Ort filterst du aber bereits in deinem SQL.
 
Ganz ehrlich, ich verstehe nur Bahnhof, zeige uns einmal die Struktur deiner Tabellen. Du selektierst Orte und plötzlich kommt Nutzer und Sammlung hinzu. Sind diese in einer 3. Tabelle zu finden, dann erweitere deine Abfrage um einen InnerJoin.
Dann würde es vielleicht folgendermaßen aussehen können:

SQL:
SELECT UT.nutzer, UT.sammlung, L.ort
FROM ort AS L 
  LEFT JOIN desc_ort AS DL 
  ON L.ort = DL.ort
  
  INNER JOIN unbekannteTabelle AS UT
  ON L.ort = UT.ort
WHERE L.ort = {$ort}
AND UT.nutzer = 1 
AND UT.sammlung = 1
ORDER BY L.ort ASC
 
Zuletzt bearbeitet von einem Moderator:
Zurück