我正在使用下面的Access查询来显示在'stacks'和'lebh shomea library'中保存位置的bib记录。但是,Access中的'and'运算符没有提供任何记录,'或'运算符会显示具有'stacks'位置的所有内容以及具有'lebh shomea library'位置的所有内容。我需要两个地点都有(仅限)持有的记录。
SELECT BIB_TEXT.BIB_ID,
BIB_TEXT.AUTHOR,
BIB_TEXT.TITLE_BRIEF,
BIB_TEXT.PUBLISHER_DATE,
BIB_VW.MFHD_LOCATION
FROM ((((BIB_TEXT
INNER JOIN BIB_VW ON BIB_TEXT.BIB_ID = BIB_VW.BIB_ID)
INNER JOIN MFHD_MASTER ON BIB_VW.MFHD_ID = MFHD_MASTER.MFHD_ID)
INNER JOIN MFHD_HISTORY ON MFHD_MASTER.MFHD_ID = MFHD_HISTORY.MFHD_ID)
INNER JOIN MFHD_ITEM ON MFHD_MASTER.MFHD_ID = MFHD_ITEM.MFHD_ID)
INNER JOIN BIB_MFHD ON BIB_TEXT.BIB_ID = BIB_MFHD.BIB_ID
WHERE (((BIB_VW.MFHD_LOCATION)="STACKS"
OR (BIB_VW.MFHD_LOCATION)="LEBH SHOMEA LIBRARY"));
答案 0 :(得分:0)
我认为BIB_TEXT
和BIB_VW
中的记录之间存在一对多的关系。如果是这种情况,您需要在BIB_VW
:
SELECT BIB_ID
FROM BIB_VW
WHERE MFHD_LOCATION="STACKS" OR MFHD_LOCATION="LEBH SHOMEA LIBRARY"
GROUP BY BIB_ID
HAVING COUNT(MFHD_LOCATION) = 2
...并使用对此子查询的引用替换原始查询中的BIB_VW
,删除原始查询的WHERE
子句。