MySQL LEFT JOIN dupliziert die Ergebnisse
Ich habe ein Problem mit der Implementierung eines Moduls, in dem eines vorhanden istproject
kann zu mehreren gehörencategories
. Beispiel: Projekt "PHP Programmer" gehört zu den Kategorien: Programmierung, PHP.
Angenommen, die folgende Abfrage (Wählen Sie Projekte aus, die zu den Kategorien 1,3,11 gehören):
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'`
Ich bekomme einedasselbe Projekt kehrte zweimal zurück, weil dort sind2 Streichhölzer in derproject_category
Tisch für dieproject_id
= 94
Tabelleprojects_category
Schema:
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);
Vermisse ich etwas?
Lösung: benutzenGROUP BY
oderDISTINCT