in $zid sind die zutaten die du hast
und du suchst nach cocktails, die keine anderen zutaten enthalten?
dann brauchen wir eine doppelte Verneinung:
deine Query:
vorweg die Query vereinfachen - die Zutaten brauchen wir nicht, da im mix die zutat-id schon enthalten ist:
erste Verneinung - Suche nach allen nicht vorhandenen Zutaten:
zweite Verneinung - Einchränkung auf Cocktails, die diese Zutaten nicht enthalten:
und du suchst nach cocktails, die keine anderen zutaten enthalten?
dann brauchen wir eine doppelte Verneinung:
deine Query:
Code:
select DISTINCT cocktail.name,mix.cid,cocktail.alk from cocktail,mix,zutat where zutat.zid IN $ids and mix.zid=zutat.zid and mix.cid=cocktail.cid
Code:
select DISTINCT cocktail.name,mix.cid,cocktail.alk from cocktail,mix where mix.zid IN $ids and mix.cid=cocktail.cid
Code:
select DISTINCT cocktail.name,mix.cid,cocktail.alk from cocktail left join mix mix.cid=cocktail.cid and mix.zid [b]not[/b] IN $ids
Code:
... group by mix.cid having count(mix.zid)[b]=0[/b]
Kommentar