MySQL LEFT JOIN duplikuje wyniki
Mam problem z implementacją modułu, w którym jest jedenproject
może należeć do wielucategories
. Przykład: projekt „PHP Programmer” należy do kategorii: Programowanie, PHP.
Zakładając następujące zapytanie (wybierz projekty należące do kategorii 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'`
Dostajęten sam projekt powrócił dwukrotnie, ponieważ są2 mecze wproject_category
tabela dlaproject_id
= 94
Stółprojects_category
schemat:
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);
Czy czegoś mi brakuje?
Rozwiązanie: posługiwać sięGROUP BY
lubDISTINCT