我与此有关,经过一个多小时的努力摆弄这个,我恐怕已经放弃......
A - 可能 - 简单的问题,虽然我没有使用SQL的经验。当我在Access中尝试这个(以及其他变体)时,我得到“表达式中的类型不匹配”:
SELECT Route_Leg_Passagier.[RouteID], Route_Leg_Passagier.[LegID], Leg.[Startpunt], Leg.[Eindpunt]
FROM Route_Leg_Passagier, Leg
WHERE Route_Leg_Passagier.[LegID] = Leg.[LegID]
AND Route_Leg_Passagier.[RouteID] = '1';
这是Access文件:
https://dl.dropboxusercontent.com/u/104521722/Vliegtuigmaatschappij%20-%20Database11.accdb
我希望看到Startpunt
为Eindpunt
的{{1}}和Leg
RouteID
和RouteID
实体LegID
,但Route_Leg_Passagier
和Startpunt
位于实体Eindpunt
中。
对不起,如果不行,我对此网站没有任何经验。但请随意批评我,并提前感谢你! :)
答案 0 :(得分:3)
不是Route_Leg_Passagier。[RouteID]是一个整数值?在这种情况下,您的WHERE条件应如下所示:
AND Route_Leg_Passagier.[RouteID] = 1;
引号用于字符串或字符值
答案 1 :(得分:1)
Route_Leg_PassagierID.LegID
是自动编号数据类型;这实际上是一种数字数据类型,一种特殊形式的长整数。 Leg.LegID
是文本数据类型。并且您的数据库包含使用该字段的这两个表之间的关系。
尝试以下步骤:
Route_Leg_PassagierID
和Leg
之间的关系。Leg.LegID
的数据类型更改为数字,长整数。SELECT
rlp.Route_Leg_PassagierID,
rlp.LegID,
l.Startpunt,
l.Eindpunt
FROM
Route_Leg_Passagier AS rlp
INNER JOIN Leg AS l
ON rlp.LegID = l.LegID
WHERE rlp.RouteID='1';
如果需要,您还可以在更正Leg.LegID
的数据类型后重新创建关系。