2014-04-17 35 views
1

我有使用填充問題SQLite數據庫預Android應用程序是,我需要做一個選擇查詢從3個表,其中第一臺如何使用sqlite查詢從三個表中檢索我需要的數據?

場地

  • _id
  • 城市

  • _id
  • GROUP_ID
  • 代碼
  • 名稱

匹配

  • _id
  • 階段
  • venue_id
  • team1_id
  • team2_id
  • 開球

我需要的是使從場地有名稱的選擇查詢,從比賽開球,從團隊團隊名稱

,其中第一個名字是第一隊和第二個名字是二隊

這是我的查詢:

select v.name,m.[kickoff],t.name,stage 
from venue v,match m,team t 
where m.venue_id = v._id 
and 
t._id = m.team1_id 
and 
t._id = m.team2_id 
+0

您發佈的查詢是否存在問題,或者您詢問如何運行查詢? – CurlyPaul

+0

不存在我的查詢錯誤,我認爲在最後一行,我問是否有任何其他解決方案來獲得我想要的 – user3499032

回答

1

我覺得這個查詢應該是你所追求的:

SELECT v.Name, m.[kickoff], team1.name, team2.name, stage 
    FROM Match AS m 
    INNER JOIN Venue AS V ON m.venue_id = v._id 
    INNER JOIN Team AS team1 ON m.team1_id = team1._id 
    INNER JOIN Team AS team2 ON m.team2_id = team2._id 

我認爲你的原始查詢有問題,實際上有2個團隊鏈接到一個匹配,但你只佔一個,並且查詢的最後一部分:

t._id = m.team1_id 
and 
t._id = m.team2_id 

......只有在球隊正在打球的時候纔會這樣。

+0

所以我會讓2表team1和team2得到我的結果謝謝 – user3499032

+0

你可以有隻有一個表 - 團隊 - 並將其加入查詢兩次。請注意,在例子中,實際的表名是相同的,但我給每個人一個別名。 – CurlyPaul

+0

如何加入團隊表兩次,並得到沒有相同錯誤的結果**只有當團隊正在玩自己時,纔會發生** ** – user3499032

相關問題