1

我有两张桌子:equipos足球队的名字和calendario比赛(jornadas)。我需要得到 jornada 1 的比赛。

示例:皇家马德里 - 巴塞罗那

这是我的查询:

SELECT NOMBRE, NOMBRE FROM EQUIPOS 
LEFT JOIN CALENDARIO ON EQUIPOS.ID=CALENDARIO.ID_LOCAL 
    AND EQUIPOS.ID=CALENDARIO.ID_VISITANTE
WHERE JORNADA=1;

第一个表是 CALENDARIO,第二个是 EQUIPOS

日历

Equipos

4

3 回答 3

2

您可以执行以下操作:

SELECT local.Nombre, visitante.Nombre
FROM calendario
LEFT JOIN EQUIPO local ON calendario.ID_LOCAL = local.ID
LEFT JOIN EQUIPO visitante ON calendario.ID_LOCAL = visitante.ID
WHERE JORNADA = 1

对于您的其他问题:

完美的。如果我有另一个名为 ARBITROS 的表,其中包含以下字段:ID 和 NAME,我想在每场比赛中获取 arbitros 的名称?

有查询:

SELECT local.Nombre, visitante.Nombre, arbitros.Name 
FROM calendario 
LEFT JOIN EQUIPO local ON calendario.ID_LOCAL = local.ID 
LEFT JOIN EQUIPO visitante ON calendario.ID_LOCAL = visitante.ID 
LEFT JOIN arbitros arbitros ON calendario.ID_arbitros = arbitros.ID 
WHERE JORNADA = 1
于 2013-04-10T17:53:47.083 回答
1

您需要对表进行两次连接EQUIPOS(它们可能不需要连接)。

SELECT EQUIPO_LOCAL.NOMBRE AS LOCAL, EQUIPO_VISITANTE.NOMBRE AS VISITANTE
FROM CALENDARIO
JOIN EQUIPOS AS EQUIPO_LOCAL ON CALENDARIO.ID_LOCAL = EQUIPO_LOCAL.ID
JOIN EQUIPOS AS EQUIPO_VISITANTE ON CALENDARIO.ID_VISITANTE = EQUIPO_VISITANTE.ID
WHERE JORNADA=1;
于 2013-04-10T17:53:16.783 回答
1
SELECT NOMBRE, NOMBRE FROM EQUIPOS LEFT JOIN CALENDARIO
ON EQUIPOS.ID=CALENDARIO.ID_LOCAL AND EQUIPOS.ID=CALENDARIO.ID_VISITANTE
WHERE JORNADA=1;

由于 AND,您的 ON 条件是不可能的,因为您的本地团队不能与访客团队相同......您需要加入 2 次团队表才能在分隔表上执行条件

于 2013-04-10T17:53:48.487 回答