2016-04-25 50 views
1

我有三個表,我試圖加入使用this問題中的示例。但是我得到的錯誤。內連接3表

錯誤:

#1054 - Unknown column 'referrer.Referrer_Name' in 'field list' 

代碼:

SELECT pupils.Pupils_Surname, 
      pupils.Pupils_FirstName, 
      referrer.Referrer_Name, 
      progress_track.test_1, 
      progress_track.test_2, 
      progress_track.test_3, 
      progress_track.test_4, 
      progress_track.test_5, 
      progress_track.test_6, 
      progress_track.test_7, 
      progress_track.test_8, 
      progress_track.test_9, 
      progress_track.test_10 
    FROM pupils 
    INNER JOIN progress_track ON progress_track.Progress_Report_Pupils_ID=pupils.Pupils_ID; 
    INNER JOIN referrer ON pupils.Pupils_Referrer, referrer.Referrer_ID ; 
+0

請張貼相關的表'創建表code' – 1000111

+2

有一個分號後的第一個內連接。因此,您的查詢錯過了這一行('INNER JOIN referrer ON pupils.Pupils_Referrer,referrer.Referrer_ID;') – 1000111

+0

請確保「referrer」表中的列名稱:Referrer_Name是否存在。我必須刪除第一個內部聯接參考的分號。 –

回答

1

首先我要強調查詢中的故障

1)查詢意外結束了一個排字錯誤

2)最後的INNER JOIN包含語法錯誤

我已經強調了故障在圖像如下:

enter image description here

補救措施:

SELECT 
    pupils.Pupils_Surname, 
    pupils.Pupils_FirstName, 
    referrer.Referrer_Name, 
    progress_track.test_1, 
    progress_track.test_2, 
    progress_track.test_3, 
    progress_track.test_4, 
    progress_track.test_5, 
    progress_track.test_6, 
    progress_track.test_7, 
    progress_track.test_8, 
    progress_track.test_9, 
    progress_track.test_10 
FROM 
    pupils 
INNER JOIN progress_track ON progress_track.Progress_Report_Pupils_ID = pupils.Pupils_ID 
INNER JOIN referrer ON pupils.Pupils_Referrer = referrer.Referrer_ID; 

針對您的評論:

Could you please post this as an answer. It worked but it still did not show any data from the referrer table

  • 如果連接條件不符合,那麼除非使用LEFT JOIN,否則無法看到 數據。請先檢查您的數據。
  • 請確保您有符合這兩個條件的數據: progress_track.Progress_Report_Pupils_ID = pupils.Pupils_ID referrer.Referrer_ID = pupils.Pupils_Referrer
1

請刪除分號在第一內結束加入聲明。因爲,查詢嘗試在查詢本身的第一個分號後終止語句。所以,這是列Referrer_Name沒有引用表的原因:「referrer」。

原:

FROM pupils INNER JOIN progress_track ON progress_track.Progress_Report_Pupils_ID=pupils.Pupils_ID; INNER JOIN referrer ON pupils.Pupils_Referrer, referrer.Referrer_ID ;

使用此:

FROM pupils INNER JOIN progress_track ON progress_track.Progress_Report_Pupils_ID=pupils.Pupils_ID INNER JOIN referrer ON pupils.Pupils_Referrer = referrer.Referrer_ID ;