[英]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.