我有2张桌子:

装备:
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中有一个注册表,其中包含现有的外键,但是查询没有检索到我任何东西。

预先感谢您可以给我的任何帮助。
让我知道您是否需要更多信息。

最佳答案

您想要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

关于mysql - SQL查询未检索任何内容,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37834189/

10-11 08:05