如果没有向您展示我所拥有的内容,就很难解释这个问题,所以我们将从那开始:
查询:
SELECT goodies.title FROM `goodies` LEFT JOIN `goody_images`
ON goodies.id=goody_images.goodie_id
原始结果:
糖果
糖果
帽子
问题:
每个连接值产生额外的结果。由于 goody_images 中的两个人都拥有 1 的 goodie_id ,因此会从打印相应的标题 >好东西两次,这就是为什么我们两次看到结果 candy 。无论匹配JOIN结果的数量是多少,我都需要它只给我一次 title 。
这是可能的,还是我最好再运行两个单独的查询?
在PHP的上下文中,我试图获得两个值:
- 一个标题,
-And和一个包含匹配图像的数组。
所有这些已经完成的编程完全可以运行 - 问题只在于正确地获得结果。
+ 以上查询为简单起见缩写
答案 0 :(得分:5)
使用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
答案 1 :(得分:1)
它没有显示额外的记录它显示糖果两次,因为goodie_id 1有两个图像,但如果你只想选择标题那么你可以使用
SELECT goodies.title FROM `goodies` LEFT JOIN `goody_images`
ON goodies.id=goody_images.goodie_id group by goodies.title