2012-04-09 6 views
0

Ich habe Probleme mit einer Join-Abfrage, mein Problem ist wie folgt.Mysql Join-Abfrage Abrufen von Profilbildern von Benutzern mit IDs aus anderen Tabelle

Table: battles 
Fields: id,attacker_id,defender_id 

Table: users 
Fields: id,profile_image 

Ich möchte eine Abfrage ausführen, um eine Schlacht abzurufen und die Profilbilder von der anderen Tabelle zu erhalten.

Gibt es eine Möglichkeit, dies in einem einzigen zu tun, oder muss ich mehr als einen tun?

Vielen Dank im Voraus.

+0

hinzufügen, so dass Sie die Benutzer Kämpfe Tabelle zwei Mal (mit zwei verschiedenen Zwecken) mit der Tabelle Benutzer beitreten möchten? Hast du irgendwas versucht? – mishu

+1

Bitte geben Sie Ihre Anfrage so weit .. – Kurt

Antwort

1

Ich wollte eine Weile warten, um zu sehen, ob Sie einen Versuch hatten oder ob Sie meine erste Frage beantworten werden, um zu wissen, ob ich das Problem verstanden habe. Aber vielleicht hast du keinen Ausgangspunkt. Versuchen Sie so etwas wie:

SELECT 
    a.profile_image as attacker_profile_image, 
    d.profile_image as defender_profile_image 
FROM 
    `battles` b 
LEFT JOIN 
    `users` a 
ON 
    b.`attacker_id` = a.`id` 
LEFT JOIN 
    `users` d 
ON 
    b.`defender_id` = d.`id` 

das Problem hier ist die Tatsache, dass Sie mit der Benutzer-Tabelle zweimal beitreten müssen, so dass Sie Aliasnamen für die Spalten erstellen müssen Sie planen

Diese Abfrage verwendet wird holen nur die zwei Bilder, müssen Sie die zusätzlichen Felder

+0

Schön, es funktioniert. Genau das habe ich gebraucht. Ich verstehe einfache Join-Abfragen, aber die beiden Joins sind ein bisschen außerhalb meiner Liga. Danke mishu, du bist großartig! – Ivar

+0

@Ivar ok, ich bin froh, dass es hilft; – mishu

Verwandte Themen