Ich bin ein Anfänger SQL-Er versucht, die Ergebnisse von zwei unabhängigen Abfragen in eine Tabelle zu verbinden. Ich habe in SO so viele Beispiele mit JOIN, UNION, verschachtelten SELECT-Anweisungen usw. betrachtet, aber keine scheint zu funktionieren. Hier sind meine Tabellen und relevanten Spalten:MySQL Join Ergebnisse von zwei unabhängigen Abfragen
Benutzer: user_ID | Benutzername
Ereignisse: event_ID | Benutzer_ID | user_ID_affected
Die Situation ist ein Multiplayer-Spiel. Was ich versuche zu tun ist "Lookup" Benutzernamen auf der Grundlage von Benutzer-IDs für jedes Ereignis, das auftritt. Ich kann den Benutzernamen von Benutzern basierend auf einem Ereignis in Ereignisse abrufen, aber nicht den Benutzernamen von Benutzern gleichzeitig.
Hier sind meine Fragen, die sowohl einzeln arbeiten:
SELECT Events.event_ID AS eventID, Events.user_ID AS userID, Users.username
AS username1, Events.user_ID_affected AS userIDAffected
FROM Events
LEFT JOIN Users ON Events.user_ID = Users.user_ID
WHERE Events.event_ID > 11337
ORDER BY Events.event_ID ASC;
und:
SELECT Users.username AS usernameAffected
FROM Users
WHERE Users.user_ID = Events.user_ID_affected;
Aber versuchen Sie, wie ich könnte ich sie nicht kombinieren. Die Ausgabe, die ich hoffe, ist ein Ergebnis mit Spalten wie folgt:
eventID | BenutzerID | Benutzername1 | userIDbetroffen | usernameAffected
Irgendwelche Gedanken?
'arbeiten beide individually' .. Ihre zweite Abfrage wird nicht einmal ausgeführt. –
Sie haben Recht Tim - und jetzt kann ich die Abfrage nicht finden, die funktioniert :(Aber die Logik ist die gleiche: Nachschlagen Benutzernamen aus der Tabelle Benutzer, wo die Benutzer-ID der Benutzer-ID aus diesem Ereignis entspricht. – Arj
Können Sie uns Beispieldaten zeigen zusammen mit Ihrer erwarteten Ausgabetabelle? –