MySQL - JOIN产生"额外"结果?

Sup*_*Cat 0 php mysql

如果不向你展示我所拥有的东西,就很难解释这个问题,所以我们将从那开始:

http://i.stack.imgur.com/scpv6.png

http://i.stack.imgur.com/XZFQR.png

查询:

SELECT goodies.title FROM `goodies` LEFT JOIN `goody_images`
ON goodies.id=goody_images.goodie_id
Run Code Online (Sandbox Code Playgroud)

原始结果:

糖果
糖果

问题:

它为每个连接值产生额外的结果.由于两人在entires的goody_images有一个goodie_id1,它打印相应的标题糖果的两倍,因此,为什么我们看到的结果是糖果的两倍.无论匹配JOIN结果的数量是多少,我都需要它只给我一次标题.

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

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

- 标题为
-And和带有匹配图像的数组.

所有这些已经完成的编程完全可以运行 - 问题只在于正确地获得结果.

+ 上面的查询是为了简单起见而缩写的

jue*_*n d 5

要么使用 distinct

SELECT distinct goodies.title 
FROM `goodies` 
LEFT JOIN `goody_images` ON goodies.id=goody_images.goodie_id
Run Code Online (Sandbox Code Playgroud)

要么 group by

SELECT goodies.title 
FROM `goodies` 
LEFT JOIN `goody_images` ON goodies.id=goody_images.goodie_id
GROUP BY goodies.title 
Run Code Online (Sandbox Code Playgroud)