2017-09-02 91 views
-1

我有以下4個表:查詢鏈接4代表與INNER JOIN

student_info:

S_ID naam email telefoon locatie U_ID 
    1 Walter [email protected] 03938 Home  1 

student_combi:

S_ID V_ID 
    1 1 

student_vak:

V_ID vak R_ID 
    1 HTML 1 

student_richting:

R_ID richting 1 Web開發

我想查詢中使用INNER JOIN

選擇 'VAK'(從 'student_vak' 表)和 'richting'(從 'student_richting' 表)

到目前爲止,我有這樣的:

SELECT student_vak.vak,student_richting.richting 
FROM student_vak 
INNER JOIN student_richting ON student_vak.R_ID = student_richting.R_ID 
INNER JOIN student_combi ON student_info.S_ID = student_combi.S_ID 
INNER JOIN student_vak ON student_combi.V_ID = student_vak.V_ID 
INNER JOIN student_richting ON student_vak.R_ID = student_richting.R_ID 

謝謝你在前進,如果你知道答案。

+1

請共享內部student_vak採樣數據和期望的輸出 – zarruq

+0

樣本數據:V_ID = 1,VAK = HTML,R_ID = 1。 student_richting:R_ID = 1,richting = Web開發 – mweb

+2

上次連接是什麼。您正在重複連接 – Khalil

回答

2

以下內容將滿足您的需求。

SELECT S.S_Id Student_Id, S.Naam Student_Name, SV.vak, SR.richting 
FROM Student_Info S 
INNER JOIN Student_Combi SC ON S.S_id = SC.S_Id 
INNER JOIN Student_Vak SV ON SC.V_Id = SV.V_Id 
INNER JOIN student_richting SR ON SV.R_Id = SR.R_Id 

--Example

CREATE TABLE #student_vak 
(V_ID INT, 
vak  NVARCHAR(256), 
R_ID INT) 

INSERT INTO #student_vak 
SELECT '1', 'HTML','1' 

CREATE TABLE #student_richting 
(R_ID  INT, 
richting NVARCHAR(256) 
) 
INSERT INTO #student_richting 
SELECT '1', 'Web-Development' 

SELECT SV.vak, SR.richting 
FROM #student_vak SV 
INNER JOIN #student_richting SR ON SV.R_Id = SR.R_Id 
+0

謝謝。這些是我應該使用的實際「名稱」,因爲在第二種情況下,我收到錯誤:#1066 - 不是唯一的表/別名:'SV'。你是否將SV縮短爲表名或? – mweb

+0

意思是,在第二個查詢中,你得到錯誤。 @mweb –

+0

第一個答案給我:#1054 - '字段列表'中的未知列'SR.student_richting'。更改信息到第二個答案給我:#1066 - 沒有唯一的表/別名:'SV' – mweb