无法加入表,ID_Dosen,ID_Dosen(主键)

时间:2017-07-30 14:38:21

标签: c# ms-access

我尝试在mst_Dosenmst_MKtst_Dosen_MK之间合并三个表格。我只想显示ID, ID_Dosen, Name, ID_MK, Nama_MK

这些是我的表:
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);
"

消息“表达式中的类型不匹配”

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分: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))