我有两张桌子:
Equipas:
codEquipa (这是表格的首选键)
nomeEquipa
logoEquipa
estadioEquipa
cidadeEquipa
JOGO:
codJogo (这是表格的首选键)
codEquipaCasa (这是codEquipa的外键)
codEquipaFora (这是codEquipa的外键)
dataJogo
并查询:*
SELECT Equipa.nomeEquipa AS "Casa",
Equipa.nomeEquipa AS "Visitante"
FROM Equipa
JOIN Jogo AS j1 ON j1.codEquipaCasa=Equipa.codEquipa
JOIN Jogo AS j2 ON j2.codEquipaFora=Equipa.codEquipa
问题是,我在Jogo有一个注册表,但有外键,但查询不能找回任何东西。
提前感谢您提供的任何帮助。 如果您需要更多信息,请告诉我。
答案 0 :(得分:2)
您希望join
Equipa
两次到Jogo
,而不是相反:
SELECT ec.nomeEquipa AS "Casa",
ef.nomeEquipa AS "Visitante"
FROM Jogo j JOIN
Equipa ec
ON j.codEquipaCasa = ec.codEquipa JOIN
Equipa ef
ON j.codEquipaFora = ef.codEquipa;
如果缺少值,则可能需要LEFT JOIN
。
答案 1 :(得分:1)
看起来Equipa是你试图加入两次的桌子,而不是Jogo。 如果我理解你的问题,试试这个:
SELECT e1.nomeEquipa AS "Casa",
e2.nomeEquipa AS "Visitante"
FROM Jogo j
JOIN Equipa AS e1 ON j.codEquipaCasa=e1.codEquipa
JOIN Equipa AS e2 ON j.codEquipaFora=e2.codEquipa