我正在执行的SQL语句如下:
SELECT `services`.`name`, `services`.`type`,
`services`.`review_count_approved`, `reviews`.`escalate`,
`services`.`average_rating`
FROM `services`
INNER JOIN `reviews` on `services`.`serviceID` = `reviews`.`serviceID`
WHERE `services`.`serviceID` IN (50707, 50709);
从执行此查询时,它应该只返回2个结果,但它实际上将2个结果返回三次。
好的,我从中获取信息的两个表是
-Services
-reviews
现在,如果我只是执行以下sql语句
SELECT * FROM `services` WHERE `serviceID` IN (50707,50709);
它带回了这些记录
但是当我在这篇文章中做最热门的查询时,它会将这2个结果带回3次。
我做错了什么?
答案 0 :(得分:2)
这是因为您在评论表中有多个serviceID。使用不同的
SELECT DISTINCT `services`.`name`, `services`.`type`,
`services`.`review_count_approved`, `reviews`.`escalate`,
`services`.`average_rating`
FROM `services`
INNER JOIN `reviews` on `services`.`serviceID` = `reviews`.`serviceID`
WHERE `services`.`serviceID` IN (50707, 50709);