2017-07-30 66 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

不起作用“表达式中的类型不匹配”。 但谢谢惠灵顿:) –