2013-04-25 36 views
2

後續代碼給了我一個不明確的列DRIVER.driv_id錯誤,有什麼幫助嗎?內部從多個表中加入sqlite

SELECT DRIVER.driv_id, DRIVER.firstName, DRIVER.surName, DRIVER.nationality, TEAMSTANDING.teamName, RESULTS.points 
FROM TEAMSTANDING INNER JOIN DRIVER ON TEAMSTANDING.driv_id=DRIVER.driv_id, 
RESULTS INNER JOIN DRIVER ON RESULTS.driv_id=DRIVER.drv_id 
WHERE TEAMSTANDING.comp_id=2 
GROUP BY DRIVER.driv_id; 
+2

除了我的回答如下,我不知道,如果你的查詢做什麼,你認爲它。在第一次內部連接之後,你就是這樣做的,這意味着你正在對結果進行CROSS JOIN。 – Aushin 2013-04-25 20:28:28

回答

0

你得DRIVER加入到查詢兩次,所以你有別名爲DRIVER兩個表,並使用driv_id從兩個。

可以將其他表別名爲別的,或者,如果不需要,則將其從JOIN中刪除。

+0

你能告訴我一些代碼來顯示它嗎?謝謝 – user2321428 2013-04-25 21:12:25

+0

稍後我會在sqlfiddle上放些東西。現在不能。 – Aushin 2013-04-25 22:28:35

+0

http://www.sqlfiddle.com/#!6/7477e/6這是我認爲你試圖寫的查詢。下面是您的FROM語句進行比較。 – Aushin 2013-04-26 01:06:11

5

你一定要嚐嚐這個,你添加的驅動程序表多次這樣,這是創建

SELECT 
    DRIVER.driv_id, DRIVER.firstName, DRIVER.surName, DRIVER.nationality, TEAMSTANDING.teamName, RESULTS.points 
FROM 
    TEAMSTANDING 
    INNER JOIN 
     DRIVER 
ON 
     TEAMSTANDING.driv_id=DRIVER.driv_id 
    INNER JOIN 
     RESULTS 
    ON 
     RESULTS.driv_id=DRIVER.drv_id 
WHERE 
    TEAMSTANDING.comp_id=2 
GROUP BY 
    DRIVER.driv_id;