phpbar.de logo

Mailinglisten-Archive

3-Tabellenproblem

3-Tabellenproblem

Technik auXion.de technik at auxion.de
Don Feb 8 09:46:28 CET 2007


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






Mit freundlichen Grüssen
    Thomas Goik

Ihre Auktionsseiten im Internet
http://www.auxion.de
http://www.Xhammer.de

--
Lofox GmbH
Geschäftsführerin: Evelyn Fuchs
Im Kamperholz 48
44805 Bochum - Germany
Amtsgericht Bochum HRB 7042
USt-IdNr.: DE215698227
St.-Nr. Bochum 306/5885/0172



_______________________________________________
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