gpt4 book ai didi

sql - Access 2007 查询错误地返回零记录

转载 作者:行者123 更新时间:2023-12-04 21:37:57 24 4
gpt4 key购买 nike

我在 Access 中有一个小型数据库,它运行良好,但存在以下问题。数据库设计正确,其他 100 个查询都可以正常工作。我试图找到正确的 SQL 来返回正确的记录。肯定有匹配的记录 (((tblComorbidity.comorbidityexplanation)="感染"和 (tblComorbidity.comorbidityexplanation)="压疮"));部分,但由于某种原因它什么都不返回。有什么建议么?谢谢

    SELECT DISTINCT Person.PersonID, tblComorbidity.comorbidityexplanation
FROM
tblKentuckyCounties INNER JOIN
(tblComorbidity INNER JOIN (Person INNER JOIN tblComorbidityPerson ON Person.PersonID = tblComorbidityPerson.personID) ON tblComorbidity.ID = tblComorbidityPerson.comorbidityFK) ON tblKentuckyCounties.ID = Person.County
WHERE
(((tblComorbidity.comorbidityexplanation)="infection" And (tblComorbidity.comorbidityexplanation)="pressure sores"));

最佳答案

您的 SQL 试图获取所有解释为“感染”和“压疮”的 tblComorbidity 记录。这是不可能的,因为一个 tblComorbidity 记录只有一个解释。

(我想)您真正想要的是获取所有存在一个解释为“感染”的 tblComorbidity 记录和另一个解释为“压疮”的 tblComorbidity 记录的所有人员。这听起来很相似,但它是不同的东西,需要以不同的方式来完成。

像下面的 SQL 应该做你想做的事:

SELECT DISTINCT Person.PersonID
FROM ((((Person INNER JOIN tblComorbidityPerson AS InfPers ON Person.PersonID = InfPers.PersonID)
INNER JOIN tblComorbidity AS Inf ON InfPers.comorbidityFK = Inf.ID)
INNER JOIN tblComorbidityPerson AS SorePers ON Person.PersonID = SorePers.PersonID)
INNER JOIN tblComorbidity AS Sore ON SorePers.comorbidityFK = Sore.ID)
INNER JOIN tblKentuckyCounties ON tblKentuckyCounties.ID = Person.County
WHERE Inf.comorbidityexplanation = "infection"
AND Sore.comorbidityexplanation = "pressure sores";

基本上,您需要加入两次合并症(每个解释一次)。

关于sql - Access 2007 查询错误地返回零记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747504/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com