2017-11-26 3 views
0

私は、自分のサイトの各クラブのすべてのチームのすべての選手をリストするクエリを作成しました。それは素晴らしい作品MySql Joinは私に空のテーブルを残しました

SELECT 
     Club.*, 
     Teams.*, 
     Players.* 
    FROM 
     (Club LEFT JOIN Teams ON Club.idClub = Teams.idClub) 
     LEFT JOIN 
     Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias 
    WHERE 
     Teams.idTemporadas = 2017 

、今私が「持っているよりも、ただの選手をリストアップしたい:私はこのクエリを使用してリストを解決するため、

A「クラブ」は「チーム」を持ち、各チームは、「選手」を持っていますhasPlay 『私はこれが変わる作ったが、それは空を返し、「他のテーブルから』演奏:

SELECT 
     Club.*, 
     Teams.*, 
     Players.*, 
     HasPlay.* 
    FROM 
     ((Club LEFT JOIN Teams ON Club.idClub = Teams.idClub) 
     LEFT JOIN 
     Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias) LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer 
    WHERE 
     Teams.idTemporadas = 2017 

私は最後のI混乱それを参加だと思う...

何かアドバイスはよくを受け取っています

SELECT 
     Club.*, 
     Teams.*, 
     Players.*, 
     HasPlay.* 
    FROM Club LEFT JOIN Teams ON Club.idClub = Teams.idClub 
    LEFT JOIN Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias 
    LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer 
    INNER JOIN Equipos_Categorias ON Teams.idEquipos_Categorias = Equipos_Categorias.idEquipos_Categorias 
      and Equipos_Categorias.idTemporadas = 2017 
    ORDER BY Club.nombre, Equipos_Categorias.idEquipos_Categorias ASC, 
     Jugadores_Equipos.categoriaJugador ASC, Jugadores_Equipos.nombre ASC 
+0

'Equipos_Categorias'が' FROM'節にないため、あなたのクエリのどれも動作しません。 –

+0

申し訳ありません@GordonLinoffはタイプミスで、「Equipos_Categorias」ではなく「Teams」でなければなりません – IvanVarela

答えて

0
は、私はそれが様々なエラーが含まれており、あなたが)(

を無駄に回避し、特にEquipos_Categoriasテーブルなどの上にJOINを使用する必要があり、とにかく

を異常検知など、あなたの元のクエリが

の作品疑います

と、チームテーブルで確認されました

SELECT 
     Club.*, 
     Teams.*, 
     Players.*, 
     HasPlay.* 
    FROM Club LEFT JOIN Teams ON Club.idClub = Teams.idClub 
    INNER JOIN Teams ON Teams.idEquipos_Categorias = Players.idEquipos_Categorias and team.idTemporadas = 2017 
    LEFT JOIN HasPLay ON Players.idPlayer = HasPlay.idPlayer 
    ORDER BY Club.nombre, Equipos_Categorias.idEquipos_Categorias ASC, 
     Jugadores_Equipos.categoriaJugador ASC, Jugadores_Equipos.nombre ASC 
+0

初期の編集で言うように、@scaisEdgeは「Teams」で置き換える必要があります。しかし、あなたの答えでは、あなたは 'INNER JOIN'を使って試してみることにしました! – IvanVarela

関連する問題