2017-07-30 57 views
0

我試圖合併mst_Dosen,mst_MK,tst_Dosen_MK之間的三個表。我只想顯示ID, ID_Dosen, Name, ID_MK, Nama_MK無法連接表,ID_Dosen,ID_Dosen(主鍵)

這些都是我的表:
enter image description here

我想加入表:tst_Dosen_MK.ID_Dosen得到形成mst_Dosen.ID_Dosen和tst_Dosen_MK.ID_MK得到形成mst_MK.ID_MK。

這樣的: enter image description here

我已經嘗試過了,但我仍然無法做到這一點。

"SELECT tst_Dosen_MK.ID, tst_Dosen_MK.ID_Dosen, mst_Dosen.Nama, tst_Dosen_MK.ID_MK, mst_MK.Nama_MK 
FROM (tst_Dosen_MK INNER JOIN mst_Dosen ON (tst_Dosen_MK.ID_Dosen = mst_Dosen.ID_Dosen) AND (tst_Dosen_MK.ID_Dosen = mst_Dosen.Nama)) INNER JOIN mst_MK ON (tst_Dosen_MK.ID_MK = mst_MK.ID_MK) AND (tst_Dosen_MK.ID_MK = mst_MK.Nama_MK); 
" 

消息) 「在表達類型不匹配」

+0

你爲什麼要加入到'Nama'和'Nama_MK'?他們是身份證嗎?他們是否與身份證相同?如果不是,請將它們保留在連接之外。 – oerkelens

回答

0

1發表無關東西出你的JOIN條件。
2)使用別名使您的查詢可讀。

這樣做導致此:

SELECT dm.ID 
    , dm.ID_Dosen 
    , d.Nama 
    , dm.ID_MK 
    , m.Nama_MK 
FROM  tst_Dosen_MK dm 
INNER JOIN mst_Dosen d ON dm.ID_Dosen = d.ID_Dosen 
INNER JOIN mst_MK  m ON dm.ID_MK = m.ID_MK; 
0

這個錯誤,「在表達式類型不匹配」,表明的是要傳遞一個查詢的領域之一是無效的。

這裏:tst_Dosen_MK.ID_Dosen = mst_Dosen.Nama你比較不同的數據類型。

試試這個:

SELECT A.ID, A.ID_Dosen, B.Nama, A.ID_MK, C.Nama_MK 
FROM tst_Dosen_MK as A, mst_Dosen as B, mst_MK as C 
WHERE A.ID_Dosen = B.ID_Dosen AND A.ID_MK = C.ID_MK 

或者這樣:

SELECT tst_Dosen_MK.ID, tst_Dosen_MK.ID_Dosen, mst_Dosen.Nama, tst_Dosen_MK.ID_MK, mst_MK.Nama_MK 

FROM (tst_Dosen_MK INNER JOIN mst_Dosen ON (tst_Dosen_MK.ID_Dosen = mst_Dosen.ID_Dosen)) INNER JOIN mst_MK ON (tst_Dosen_MK.ID_MK = mst_MK.ID_MK)) 
+0

不起作用「表達式中的類型不匹配」。 但謝謝惠靈頓:) –