内部联接不起作用

时间:2014-04-29 07:32:04

标签: mysql inner-join

我正试图从裁判(Localidad)获得城镇(ArbPrin, ArbAux, Anotador, Crono, Op24)。我进行查询,结果不正确。例如,如果我只有ArbPrinAnotador,则会为所有裁判返回ArbPrin小镇。如果ArbPrin来自马拉加,而Anotador来自托雷莫利诺斯,那么所有裁判的结果都是马拉加。

这是查询:

SELECT L1.Nombre AS'LocPrin', L2.Nombre AS'LocAux', L3.Nombre AS'LocAn',
L4.Nombre AS'LocCro', L5.Nombre AS'LocOp' FROM PARTIDO 
    INNER JOIN EQUIPO_ARBITRAL A1 ON PARTIDO.ArbPrin=A1.Codigo_arbitro
    INNER JOIN EQUIPO_ARBITRAL A2 ON PARTIDO.ArbPrin=A2.Codigo_arbitro 
    INNER JOIN EQUIPO_ARBITRAL A3 ON PARTIDO.ArbPrin=A3.Codigo_arbitro 
    INNER JOIN EQUIPO_ARBITRAL A4 ON PARTIDO.ArbPrin=A4.Codigo_arbitro 
    INNER JOIN EQUIPO_ARBITRAL A5 ON PARTIDO.ArbPrin=A5.Codigo_arbitro
    INNER JOIN LOCALIDAD L1 ON A1.Cod_localidad=L1.Codigo_localidad
    INNER JOIN LOCALIDAD L2 ON A2.Cod_localidad=L2.Codigo_localidad
    INNER JOIN LOCALIDAD L3 ON A3.Cod_localidad=L3.Codigo_localidad
    INNER JOIN LOCALIDAD L4 ON A4.Cod_localidad=L4.Codigo_localidad
    INNER JOIN LOCALIDAD L5 ON A5.Cod_localidad=L5.Codigo_localidad;

这是结果的一个例子。如果我有以下裁判:

  

ArbPrin:马拉加,ArbAux:Torremolinos,Anotador:Benalmadena

结果是下一个:

LocPrin    LocAux    LocAn    LocCro    LocOp
-----------------------------------------------
Malaga     Malaga    Malaga   Malaga    Malaga

我想要的结果是下一个:

LocPrin    LocAux         LocAn        LocCro    LocOp
--------------------------------------------------------
Malaga   Torremolinos   Benalmadena  

1 个答案:

答案 0 :(得分:2)

在这里,我想这就是你想要的:

SELECT L1.Nombre AS'LocPrin', L2.Nombre AS'LocAux', L3.Nombre AS'LocAn',
L4.Nombre AS'LocCro', L5.Nombre AS'LocOp' FROM PARTIDO 
    LEFT JOIN EQUIPO_ARBITRAL A1 ON PARTIDO.ArbPrin=A1.Codigo_arbitro
    LEFT JOIN EQUIPO_ARBITRAL A2 ON PARTIDO.ArbAux=A2.Codigo_arbitro 
    LEFT JOIN EQUIPO_ARBITRAL A3 ON PARTIDO.Anotador=A3.Codigo_arbitro 
    LEFT JOIN EQUIPO_ARBITRAL A4 ON PARTIDO.Crono=A4.Codigo_arbitro 
    LEFT JOIN EQUIPO_ARBITRAL A5 ON PARTIDO.Op24=A5.Codigo_arbitro
    LEFT JOIN LOCALIDAD L1 ON A1.Cod_localidad=L1.Codigo_localidad
    LEFT JOIN LOCALIDAD L2 ON A2.Cod_localidad=L2.Codigo_localidad
    LEFT JOIN LOCALIDAD L3 ON A3.Cod_localidad=L3.Codigo_localidad
    LEFT JOIN LOCALIDAD L4 ON A4.Cod_localidad=L4.Codigo_localidad
    LEFT JOIN LOCALIDAD L5 ON A5.Cod_localidad=L5.Codigo_localidad;

<强> Demo