簡體   English   中英

MySQL-JOIN產生“額外”結果嗎?

[英]MySQL - JOIN producing “extra” results?

不向您展示我所擁有的東西就很難解釋這個問題,因此我們將從這一點開始:

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

原始結果:

糖果
糖果
帽子

問題:

每個連接值產生一個額外的結果。 由於兩人在goody_images的entires的有1所涉及的goodie_id,它打印從糖果相應稱號的兩倍,因此,為什么我們看到的結果糖果的兩倍。 相反,無論匹配的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 

它沒有顯示多余的記錄,而是兩次顯示糖果,因為goodie_id 1有兩個圖像,但是如果您只想選擇標題,則可以使用

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM