2016-06-15 78 views
0

我有2個表:SQL查詢不檢索任何

Equipas:
codEquipa(這是表的primay鍵)
nomeEquipa
logoEquipa
estadioEquipa
cidadeEquipa

JOGO:
codJogo(這是表的primay鍵)
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與existant外鍵一個註冊表,但查詢不檢索我什麼。

在此先感謝您提供的任何幫助。 讓我知道你是否需要更多信息。

+0

基於sql語法刪除了Sql-Server標記。 –

+0

如果可能的話放一些示例數據 – Avi

+0

爲什麼你在查詢的select部分有2個相同的列(Equipa.nomeEquipa)?你嘗試過LEFT JOIN嗎? –

回答

2

你想joinEquipa兩次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

+0

謝謝,這使得它通過。並且知道我明白這個JOIN語句 –

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