referenz auf subquery (sql/mysql)



  • ist es möglich auf ein subquery eine referenz zu erstellen sodass
    das query nicht mehrmals in der gesamtanfrage vorkommt?

    das subquery ist z.b.
    (select ID from foo where...) AS some_ref

    und jetzt würd ichs gern so benutzen
    hauptquery... AND NOT IN som_ref... OR... AND IN some_ref



  • also in TSQL macht man das so...

    WITH some_ref AS
    (
        select ID from foo where...
    )
    

    Folgendes wird dann aber nicht funktionieren: (da IN eine csv erwartet)

    hauptquery... AND NOT IN som_ref... OR... AND IN some_ref
    

    Stattdessen joinst du die Abfrage einfach mit rein:

    SELECT * from foo
    JOIN some_ref....
    

    Statt AND NOT IN kann man auch right joinen. Folgendes Bsp. liest alles aus foo, was nicht in some_ref referenziert ist:

    SELECT * from some_ref
    RIGHT JOIN foo ON foo.ID <> some_ref.ID
    WHERE (...weitere Bedingungen...)
    

Anmelden zum Antworten