我有两张桌子: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
答案 0 :(得分: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,我想在每场比赛中得到仲裁的名字吗?
有查询:
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
答案 1 :(得分: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;
答案 2 :(得分:1)
SELECT NOMBRE, NOMBRE FROM EQUIPOS LEFT JOIN CALENDARIO
ON EQUIPOS.ID=CALENDARIO.ID_LOCAL AND EQUIPOS.ID=CALENDARIO.ID_VISITANTE
WHERE JORNADA=1;
你的ON条件是不可能的,因为你的本地团队不能与访客团队相同......你需要加入团队表的2倍才能在分离的表上做条件