我在Microsoft Access中有三个表。
我有一个查询连接属性的前两个,但如果表2中给定名称的MeasurementType为“允许”,则需要使用第三个表创建“标记”字段。
例如
Measures Names AllowedTypes
------- ------- -------
UniqueVal -------> UniqueVal (PK) /------> Name
Measurement Name ----------- ---> AllowedType
MeasurementType -----------------------/ ID (PK)
我的“合并”查询说
SELECT Measures.UniqueVal, Measures.Measurement, Measures.MeasurementType, Names,Name
FROM Measures JOIN Names on Measures.UniqueVal = Names.UniqueVal
但是如果该名称的MeasurementType不在AllowedTypes中,则需要添加“Flag Field”(每个名称可能有多个允许的类型)。我试着像上面描述的那样进行连接,但是我得到了“加入不允许”和其他类似的废话。我只是想不出这个纸板箱。想法?
答案 0 :(得分:0)
访问'数据库引擎要求您明确告诉它您想要什么类型的JOIN:INNER JOIN; LEFT JOIN;正确的加入。
您的字段列表中也有错误的逗号。
我的猜测是这个查询更接近你想要的东西:
SELECT Measures.UniqueVal, Measures.Measurement, Measures.MeasurementType, Names.[Name]
FROM Measures INNER JOIN Names on Measures.UniqueVal = Names.UniqueVal