[英]MySQL - JOIN producing “extra” results?
不向您展示我所擁有的東西就很難解釋這個問題,因此我們將從這一點開始:
查詢:
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.