Hallo,
Ich habe eine Usertabelle "Users": ID (Int), Name (Varchar), ... (und noch ein paar Eigenschaften). In einer weiteren Tabelle "Sprachen": ID (Int), user_id, (Int) Sprache (Varchar), Anzahl_Jahre (decimal) stehen die Sprachen der user und wie lange sie diese gelernt haben.
Nun möchte ich in einem Select zB alle ausgeben die Englisch mehr als 4 Jahre und Russisch weniger als 3 Jahre sprechen.
Meine erste Idee ist:
Select ID, Name from Users, Sprachen where
Users.id = Sprachen.user_id and
Users.id in (Select Sprachen.user_id from Sprachen where Sprache = Englisch and Anzahl_Jahre > 4) and
Users.id in (Select Sprachen.user_id from Sprachen where Sprache = Russisch and Anzahl_Jahre < a)
mich stören die zusätzlichen selects in der where-klausel. kann man das irgendwie besser schreiben/verknüpfen ohne die ganzen ids erst mit den selects in arrays zu packen?