<ÜBERARBEITET>
nochmal hallo und ein frohes neues jahr!
ich habe eine tabelle mit zwei spalten "id" und "inhalt". es sollen alle "ids" generiert werden, die den "inhalt" A,B und nicht C beinhalten. wie verknüpfe ich am besten die self-joins (mit left join...?)?
id inhalt
1 A
1 C
2 A
2 B
2 C
3 B
3 D
vorschlag:
SELECT DISTINCT(t1.id) FROM tabelle AS t1
join tabelle AS t2 on t1.id = t2.id
join tabelle AS t3 on t2.id = t3.id
WHERE t1.inhalt = "A" AND t2.inhalt = "B" AND t3.inhalt != "C"
mich irritiert, das je nach dem wie ich die reihenfolge der WHERE-bedingungen gestalte, die abfragezeit ganz stark schwankt: wenn ich z.b. t1.inhalt != "C" als erste WHERE-bedingung nehme, ist die abfragedauer viel länger als oben im vorschlag.
warum?
gruß
heiner