2015-04-01 135 views
0

我的第一次Stackoverflow問題讓我容易,我對SQLite不是很有經驗。Sqlite加入混淆

我有足球隊

CREATE TABLE IF NOT EXISTS teams (
    teamId  INTEGER PRIMARY KEY NOT NULL, 
    name  TEXT, 
    ); 

的表和匹配的表

CREATE TABLE IF NOT EXISTS matches (
     matchId  INTEGER PRIMARY KEY NOT NULL, 
     homeTeamId INTEGER, 
     awayTeamId INTEGER, 
     ); 

我試圖找出這將顯示匹配的列表中的SELECT語句,但會更換兩homeTeamId和客隊隊員的姓名。

我已經嘗試了幾個變體,但由於匹配表中的兩個字段返回到相同的團隊表,我得到了語法錯誤或模糊的列錯誤。

對不起,對於一個相當基本的問題,任何幫助表示讚賞。

傑夫

回答

1

試試這個:

select m.matchId, h.name, a.name 
from matches m 
inner join teams h on h.teamId = m.homeTeamId 
inner join teams a on a.teamId = m.awayTeamId 

您還沒有發佈,你已經嘗試了變異,所以我只是假設你的問題是由未使用別名引起的(在我的例子ha )爲表teams。如果您需要連接兩個表,您必須至少使用一個別名。

0

感謝您的快速回復。在我發佈我的問題約15分鐘後,我通常會偶然發現解決方案,但我的解決方案與您的解決方案完全相同,只是我沒有打擾別名匹配表。

你的回答有它一點點錯字我覺得

SELECT m.matchId, h.name, a.name 
FROM matches m 
INNER JOIN teams h ON h.teamId = m.homeTeamId 
INNER JOIN teams a ON a.teamId = a.awayTeamId 
           --^should be m.awayTeamId 

但再次感謝您的幫助!

傑夫

+0

你是對的,抱歉的錯字,我會解決它。 – 2015-04-02 08:52:40