Kniffliges(?) Problem

fabbed

Grünschnabel
Hi,

nehmen wir an wir habel folgende Tabelle

Felder:

fk_main_id, fk_location_id

mit folgenden Werten
2, 4
2, 7

3, 4
3, 7
3, 9


Jetzt brauche ich eine Abfrage die mir die fk_main_ids rausschmeisst, aber (nun das schwierige) nur für die Werte die ich Angebe.

zb..
select * from tabelle where fk_location_id = 4 und 7 group by fk_main_id

Ich möchte jetzt als ergebniss nur fk_main_id 2 bekommen, da die 3 zwar auch beide Werte enthält, aber noch einen dritten nämlich 9.

Wie kann ich so etwas machen?

Wenn ich es mit in(4,7) mache schmeisst er mir auch fk_main_id 3 raus
 
hi fabbed,

ok, die Lösung gefällt mir nicht wirklich, funktioniert aber unter mysql.
Code:
 select * from t as t3
 where t3.a not in (
   select distinct t2.a from t as t2 left outer join
 	(SELECT a,b FROM t
 	  where t.b = 4 or t.b = 7) as t1
   on (t2.a = t1.a and t2.b = t1.b)
   where t1.a is null
 )
 
Zurück