SQL Ausgabe Problem

hendrik87

Grünschnabel
Hallo

Ich möchte mit SQL und JOIN LEFT zwei Tabellen ausgeben. Dies funktioniert auch nur ist mein Problem, das ich aus einer Tabelle nicht die ID ausgelesen bekomme, da beide Tabellen eine ID haben.

PHP:
$abfrage = "
   SELECT *
   FROM j_joomgallery
   LEFT JOIN j_users ON j_users.id = j_joomgallery.owner
   ORDER BY j_joomgallery.imgdate DESC LIMIT $max_anz
   ";
$ergebnis = mysql_query($abfrage);

while($row = mysql_fetch_object($ergebnis))
{
  $ausgabe[$i][datum] = strtotime($row->imgdate);
  $ausgabe[$i][user] = $row->username;
  $ausgabe[$i][text] = $row->imgtitle;
  $ausgabe[$i][link] = "index.php?view=detail&id=".$row->id."&option=com_joomgallery";  
  $ausgabe[$i][art] = "bild";
  $i++;
}

also das Problem liegt hier am Ende. $row->id gibt die ID der Tabelle "j_users" aus. Ich möchte aber gerne die ID von "j_joomgallery" haben. $row->j_joomgallery.id habe ich schon ausprobiert, bringt aber auch kein Erfolg. Was kann ich da machen?

Gruß Hendrik
 
Gibt doch mal im SELECT schon den Tabellennamen mit an und dann zusätzlich noch einen Aliasnamen für dieses Feld!?
 
Du solltest kein * im SELECT verwenden sondern nur die Felder auslesen die du wirklich brauchst. Bei JOIN ist es nicht nur wegen der Performance, sondern wegen dem was du selber erlebst.
Auch gut ist es bei langen Tabellennamen Tabellenaliase zu verwenden
SQL:
SELECT
  g.id,
  g.imgtitle,
  u.username,
  -- Und falls du die andere ID auch noch brauchst
  u.id AS user_id
FROM
  joomgallery AS g
  LEFT JOIN j_users AS u
    ON u.id = g.owner
ORDER BY
  g.imgdate DESC 
LIMIT {$max_anz};
 
Zuletzt bearbeitet von einem Moderator:
Zurück