不向您展示我所拥有的东西就很难解释这个问题,因此我们将从这一点开始:





查询:

SELECT goodies.title FROM `goodies` LEFT JOIN `goody_images`
ON goodies.id=goody_images.goodie_id


原始结果:

糖果
糖果
帽子

问题:

每个连接值产生一个额外的结果。因为goody_images中的两个整体的goodie_id为1,所以它将两次打印好东西中的相应标题,因此为什么我们两次看到结果candy。相反,无论匹配的JOIN结果有多少,我都只需要给它一次标题即可。

这可能吗,还是我最好运行两个单独的查询?

在PHP的上下文中,我试图获得两个值:

-一个标题,
-并且具有匹配图像的数组。

所有这一切的编程已经完成,可以完美地操作-问题仅在于正确获得结果。

+为简化起见,以上查询已缩写

最佳答案

要么使用distinct

SELECT distinct goodies.title
FROM `goodies`
LEFT JOIN `goody_images` ON goodies.id=goody_images.goodie_id


group by

SELECT goodies.title
FROM `goodies`
LEFT JOIN `goody_images` ON goodies.id=goody_images.goodie_id
GROUP BY goodies.title

关于php - MySQL-JOIN产生“额外”结果吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26897280/

10-13 06:39