不向您展示我所拥有的东西就很难解释这个问题,因此我们将从这一点开始:
查询:
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/