Mailinglisten-Archive |
Am 08.02.2007 um 09:46 schrieb Technik auXion.de: > Hallo; > >> nach langem Mitlesen hätte ich nun auch mal ein Problem! >> Vielleicht könnt Ihr mir einen Hinweis geben! >> >> Um es gleich zu sagen: es geht nur um "MySQL" und das in den >> Versionen "4.1.12-standard" im Testsystem und "4.0.23-Max-log" im >> Web. >> >> Artikel sind über eine Zwischentabelle mit Kategorien verbunden: >> >> Artikel <- Zwischentabelle -> Kategorien >> >> Jetzt will ich nur die Artikel haben, die mit einem bestimmten Satz >> von Kategorien verbunden sind: z. B. : 'cat1', 'cat2', 'cat3' >> Gewünschtes Ergebnis wäre z.B.: >> >> artikel.id | kat.name >> ------------------------------- >> 3 | cat1 >> 3 | cat2 >> 3 | cat3 >> 5 | cat1 >> 5 | cat2 >> 5 | cat3 >> >> So bekomme ich jedenfalls kein Ergebnis: >> >> SELECT artikel.id , kat.name >> FROM artikel >> INNER JOIN atokat ON atokat.artikel_id = artikel.id >> INNER JOIN kat ON kat.id = atokat.kat_id >> WHERE ( kat.name = 'cat1' AND kat.name = 'cat2' AND >> kat.name = 'cat3' ) >> ORDER BY artikel.id > > > Hast du schon mal folgendes probiert: > > Select item.id > from item > left join item_cat on item_cat.id = item.id > where item_cat.cat_id > in ( > select cat.id from cat where cat.name in (cat1, cat2,cat3) > ) > > Du mußt, so wie ich das sehen, mindesten die "atokat" mit der "cat" > 3 mal > joinen und dann das ganze gegen eben die artikel abgleichen. > > Select item from > item_cat left join cat t1 on t1.id = item_cat.id > left join cat t2 on t2.id = item_cat.id > left join cat t3 on t3.id = item_cat.id > left join item on item.id = item_cat.item_id > where t1.name = 'cat1' and t2.name = 'cat2' and t3.name = 'cat3' > order by item.id Danke, Thomas, probiere ich später! Muß jetzt ins Schneegestöber... Gruß Gerd _______________________________________________ Allgemeine Infos zur Liste: http://www.4t2.com/mysql/ Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de
php::bar PHP Wiki - Listenarchive