2x gleicher Wert aus 2 Tabellen abfragen

Eiszwerg

Erfahrenes Mitglied
Moin zusammen,

entschuldigt bitte den schlecht gewählten Titel, aber ich weiß mich nicht anders auszudrücken.

Ich habe eine Tabelle (places) in welcher Orte verwaltet werden.
Unter anderem steht dort auch die NutzerID (place_author) von dem Nutzer drin, der den Ort eingetragen hat.

Nun baue ich gerade eine Editier-Funktion und schreibe ausserdem die NutzerID (place_update_user) des Nutzers rein, der zuletzt editiert hat.

Nun würde ich gern per PHP später beide Nutzernamen ausgeben, habe aber keine Ahnung, wie die Abfrage auszusehen hat.


Meine bisherige, funktionierende Abfrage mit nur einem Nutzer sieht so aus:
SQL:
SELECT 
    * 
FROM 
    places AS p, 
    categories AS c, 
    regions AS r,
    access AS a, 
    users as u 
WHERE 
    p.place_id=".$_GET['place']." 
AND 
    p.place_cat=c.cat_id 
AND 
    p.place_region=r.region_id 
AND 
    p.place_access=a.access_id 
AND
    p.place_author=u.user_id;

Wenn ihr noch mehr Infos braucht, gebt laut.
Bin für jeden Tipp dankbar!
 
Zuletzt bearbeitet:
Uh, ein so grosser Einzeiler. Sorry, ist nicht lesbar. Darum geb ich dir nur ein Beispiel und passe nicht deinen Code an.

Du must mit Aliasen arbeiten
SQL:
SELECT
    a.*,
    b1.name AS b1_name,
    b2.name AS b2_name
FROM
    tbl_a AS a
    LEFT JOIN tbl_b AS b1 ON a.b1_id = b1.id
    LEFT JOIN tbl_b AS b2 ON a.b2_id = b2.id


Kleiner Tipp für deine SQLs innerhalb von PHP:
PHP SQL-Statement in PHP lesbar darstellen
 
Zuletzt bearbeitet von einem Moderator:
Danke Dir. Probier ich gleich mal aus.

Das mit dem Formatieren sollte ich mir echt mal angewöhnen ;)
Hab obige Abfrage mal entsprechend angepasst.

Ich checks nicht :(
 
Du musst die Tabelle halt 2 mal einbinden unter verschiedenen Alias.
in meinem Beispiel ist a tbl_a deine Tabelle places und tbl_b deine Usertabelle

Ansonsten stell deine Frage genauer. Ich hab keine Lust ALLES zu erklären
 
Ich hab's nun so angepasst, aber ich fürchte, dass mir die WHERE-Klausel da einen Streich spielt.

Wenn Du so lieb bist und nochmal kurz Zeit opfern magst, um zu schauen, was ich da vermurkst hab?

Danke!

SQL:
SELECT 
    p.*,
    c.*,
    r.*,
    a.*,
    u1.user_fullname AS author,
    u2.user_fullname AS updater
  FROM 
    places AS p, 
    categories AS c, 
    regions AS r, 
    access AS a, 
  LEFT JOIN users AS u1 ON p.place_author=u1.user_id
  LEFT JOIN users AS u2 ON p.place_update_user=u2.user_id
  WHERE 
    p.place_id=".$_GET['place']." 
  AND 
    p.place_cat=c.cat_id
  AND
    p.place_region=r.region_id
  AND
    p.place_access=a.access_id
  AND 
    p.place_author=u1.user_id
  AND 
    p.place_update_user=u2.user_id

Code:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /www/htdocs/w009981a/loc/detail.php on line 37
 
Hab's zwischenzeitlich selbst hinbekommen.
Danke für Deine Mühe
SQL:
SELECT 
    p.*,
    r.*,
    c.*,
    a.*,
    u1.user_fullname AS author,
    u2.user_fullname AS updater
  FROM 
    places AS p
  LEFT JOIN users AS u1 ON p.place_author=u1.user_id
  LEFT JOIN users AS u2 ON p.place_update_user=u2.user_id
  LEFT JOIN regions AS r ON p.place_region=r.region_id
  LEFT JOIN categories AS c ON p.place_region=c.cat_id
  LEFT JOIN access AS a ON p.place_access=a.access_id
  WHERE 
    p.place_id=".$_GET['place']."
    AND invisible='0'
 
Zurück