我在執行模塊時出現問題,其中一個project
可能屬於多個categories
。例如:項目「PHP程序員」屬於類別:編程,PHP。MySQL LEFT JOIN重複結果
假設下面的查詢(屬於類別1,3,11選擇項目):
SELECT projects.* FROM projects
LEFT JOIN pojects_category on projects.id = pojects_category.project_id
WHERE pojects_category.category_id IN (1,3,11) and projects.id='94'`
我得到了同一項目兩次返回,因爲有在比賽中該表爲project_id
= 94
表projects_category
架構:
CREATE TABLE IF NOT EXISTS `pojects_category` (
`project_id` int(10) NOT NULL,
`category_id` int(10) NOT NULL,
KEY `category_id` (`category_id`),
KEY `project_id` (`project_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `pojects_category` (`project_id`, `category_id`) VALUES
(94, 3),
(94, 1);
我錯過了什麼嗎?
解決方案:使用GROUP BY
或DISTINCT
如果您只想要每個項目中的一個,請將'GROUP BY project_id'附加到您的查詢 – mariusnn 2012-07-10 15:08:30
@mariusnn謝謝,它的工作原理! – technology 2012-07-10 15:34:36
不要使用group by,請參閱我的解釋 – Sebas 2012-07-10 15:40:33