• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Problem mit JOIN

Status
Für weitere Antworten geschlossen.

yoshi95

Neues Mitglied
Ich habe zwei Tabellen. Jetzt möchte ich mit Php ausgeben:
Code:
$sql = "SELECT * FROM `extras`;";    
$result = mysql_query($sql);    
while ($row=mysql_fetch_assoc($result)) {    
echo "$row[juwel]$row[titel]$row[beschreibung]";
}
Das ist jetzt alles aus der Tabelle Extras. Jetzt möchte ich aber das juwel ausgeben (ist in der tabelle juwelen gespeichert) das mit der id von extras ($row[juwel]) übereinstimmt.

Ich hab gehört, dass das irgendwie mit JOIN geht, hab aber keine Ahnung, wie das zu realisieren ist.
 
Zuletzt bearbeitet:
Versuch mal so
Code:
SELECT 
    `ex`.*,
    `jw`.`juwel`
FROM
    `extras` as `ex`,
    `juwelen` as `jw`
WHERE
    `jw`.`id` = `ex`.`juwel`
 
Der Code ist recht simpel.
Wir wählen einfach die Daten von 2 Tabellen aus die jeweils einen Alias haben. Extras wird zu ex und juwelen wird zu jw.
Die Where bedingung sollte klar sein.

Warum das nicht funzt. kP. ich wälz mal das handbuch.
 
Code:
[/COLOR]
[SIZE=2][COLOR=black]<?php[/COLOR]
[/SIZE][COLOR=black][SIZE=2]@[/SIZE][SIZE=2]mysql_connect[/SIZE][SIZE=2]([/SIZE][SIZE=2]"???[/SIZE][SIZE=2]"[/SIZE][SIZE=2])[/SIZE][SIZE=2]or[/SIZE][SIZE=2] die[/SIZE][SIZE=2]([/SIZE][SIZE=2]"Verbindung zu MySQL gescheitert"[/SIZE][SIZE=2]);
[/SIZE][/COLOR][COLOR=black][SIZE=2]@[/SIZE][SIZE=2]mysql_select_db[/SIZE][SIZE=2]([/SIZE][SIZE=2]"???"[/SIZE][SIZE=2])[/SIZE][SIZE=2]or[/SIZE][SIZE=2] die[/SIZE][SIZE=2]([/SIZE][SIZE=2]"Datenbankzugriff gescheitert"[/SIZE][SIZE=2]);
[/SIZE][/COLOR][COLOR=black][SIZE=2]$sql[/SIZE][I][SIZE=2]=[/I][/SIZE][/COLOR][SIZE=2][/SIZE][SIZE=2][COLOR=black]"SELECT [/COLOR]
[COLOR=black]`ex`.*,[/COLOR]
[COLOR=black]`jw`.`juwel`[/COLOR]
[COLOR=black]FROM[/COLOR]
[COLOR=black]`extras` as `ex`,[/COLOR]
[COLOR=black]`juwelen` as `jw`[/COLOR]
[COLOR=black]WHERE[/COLOR]
[COLOR=black]`jw`.`id` = `ex`.`juwel`"[/COLOR][/SIZE][SIZE=2][COLOR=black];[/COLOR]
[/SIZE][COLOR=black][SIZE=2]$result[/SIZE][I][SIZE=2]=[/I][/SIZE][/COLOR][COLOR=black][SIZE=2]mysql_query[/SIZE][SIZE=2]([/SIZE][SIZE=2]$sql[/SIZE][SIZE=2]);
[/SIZE][/COLOR][SIZE=2][COLOR=black]while [/COLOR][/SIZE][COLOR=black][SIZE=2]([/SIZE][SIZE=2]$row[/SIZE][I][SIZE=2]=[/I][/SIZE][/COLOR][COLOR=black][SIZE=2]mysql_fetch_assoc[/SIZE][SIZE=2]([/SIZE][SIZE=2]$result[/SIZE][SIZE=2]))[/SIZE][SIZE=2]{
[/SIZE][/COLOR][SIZE=2][COLOR=black]echo [/COLOR][/SIZE][COLOR=black][SIZE=2]"<tr><td>[/SIZE][SIZE=2]$row[/SIZE][/COLOR][COLOR=black][SIZE=2][juwel]</td><td>[/SIZE][SIZE=2]$row[/SIZE][/COLOR][COLOR=black][SIZE=2][titel]</td><td>[/SIZE][SIZE=2]$row[/SIZE][/COLOR][COLOR=black][SIZE=2][beschreibung]</td></tr>"[/SIZE][SIZE=2];
[/SIZE][/COLOR][SIZE=2][COLOR=black]}[/COLOR][/SIZE]
[SIZE=2][COLOR=black]?>[/COLOR]
[/SIZE][COLOR=black]
Wahrscheinlich der simpelste Fehler...:mrgreen:
 
mach einfach
$result = mysql_query($qry) or die(mysql_error());

Ich habe noch etwas rumgebastelt und bei mir Funktioniert diese Abfrage. Wenn sie bei dir nicht geht, liegt das daran, dass irgendwo ein Tabellennname oder Spaltenname falsch ist:

Code:
SELECT 
   `extras`.*,
   `juwelen`.* 
FROM 
    `extras`
    LEFT JOIN 
       `juwelen` 
    ON 
        `extras`.`juwel` = `juwelen`.`id`

Falls das nicht geht, schick mir bitte mal einen SQL.-Dump (Export) deiner Datenbank dann kann ich bei mir den Befehl zusammenbasteln
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben