繁体   English   中英

SQL查询显示不正确的结果

[英]SQL query showing incorrect results

我正在使用Microsoft Access,并且我有执行所有相关联接的SQL查询:

SELECT c.ID
FROM   ((((((((Cars c
               INNER JOIN Offers
                       ON c.ID = Offers.car_id)
              INNER JOIN Users u
                      ON c.owner_id = u.ID)
             INNER JOIN City
                     ON u.city_id = City.ID)
            INNER JOIN Models
                    ON c.model_id = Models.ID)
           INNER JOIN Makes
                   ON Models.make_id = Makes.ID)
          INNER JOIN Type
                  ON Models.type_id = Type.ID) ))
WHERE  ( Offers.decision <> 3 ) 

在我的汽车表中,我有1辆汽车,在我的报价表中,我对同一辆汽车有3个要约,决策为2和4。由于某种原因,当我执行查询时,它会显示3次相同的汽车在3个报价的基础上进行。

他们有办法显示没有3的Offer.decision的汽车吗?

您不应使用联接,而应使用子查询:

SELECT * FROM Cars WHERE ID NOT IN (SELECT DISTINCT car_id FROM Offers WHERE decision <> 3)

将查询简化为:

SELECT        c.ID
FROM            Cars c INNER JOIN
                     Offers ON c.ID = Offers.car_id 

在哪里(Offers.decision <> 3)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM