2016-05-31 15 views
2

Ich habe eine Tabelle namens player_league verwenden, die wie folgt aussieht: enter image description hereNeues Profil Tabelle Fremdschlüssel

Die Benutzer-ID und Liga-ist Fremdschlüssel Spalte in der Tabelle Benutzer und Ligen jeweils verweist.

Ich möchte die Datenbank abfragen, um alle Benutzer zu erhalten, die eine ligaID von 1 aus der Tabelle player_leagues haben.

Diese Abfrage

SELECT leagueID from users join player_league pl WHERE pl.leagueID = 1 

gibt Daten, die zu sein, wie enter image description here

sieht, dass ich bin neu in mySQL und SQL im Allgemeinen, ich habe mich gefragt, was ich falsch mache? Ich glaube, es hat etwas mit meinen Joins zu tun, aber vielleicht habe ich meine Tische aufgestellt, ich bin mir einfach nicht sicher. Es gibt keine in der Liga-Tabelle Benutzer, also bin ich nicht sicher, warum jeder Benutzer eine Liga-von 1.

Antwort

0

Ihnen fehlt der on-Teil der join-Klausel, der die Datenbank anweist, wie die beiden Tabellen verknüpft werden. Der Standardwert ist ein kartesisches Produkt, d.h. das Verbinden jeder Zeile aus der ersten Tabelle mit jeder Zeile aus der zweiten Tabelle.

SELECT u.* 
FROM users u 
JOIN player_league pl ON u.userID = pl.userID 
WHERE pl.leagueID = 1 
+1

Ah:

In diesem Fall können Sie auf der userID teilnehmen! Ich sehe, das macht sehr viel Sinn. Vielen Dank! – hokster23

0

Wahrscheinlich wollen Sie so etwas wie dieses haben würde:

select * from user left join player_league on user.id = player_league.userId where player_league.leagueId = '1' 

this helps

Verwandte Themen