MYSQL加入带来三重结果

时间:2015-06-26 12:49:14

标签: mysql sql database

无论如何,我对mysql并不感到惊讶。直到昨天我还没有处理任何类型的加入,我现在遇到了问题。

我正在执行的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);

它带回了这些记录

enter image description here

但是当我在这篇文章中做最热门的查询时,它会将这2个结果带回3次。

我做错了什么?

1 个答案:

答案 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);
相关问题