From: | Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
---|---|
To: | "Lars Grundei *EXTERN*" <l(dot)grundei(at)meteocontrol(dot)de>, "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | Re: Unterabfragen zusammenfassen??? |
Date: | 2014-04-01 12:22:25 |
Message-ID: | A737B7A37273E048B164557ADEF4A58B17CEA128@ntex2010i.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Lars Grundei schrieb:
> Ich habe diese Abfrage, die auch soweit Funktioniert:
>
> SELECT CASE WHEN val = 0 THEN FALSE ELSE TRUE END AS result
> FROM tbl_d WHERE tbl_a_id = (SELECT id FROM tbl_a WHERE
> tbl_b_id = (SELECT tbl_b_id FROM view_a WHERE id_x = 564 AND ident_y = 'foo' AND ident_z = 'bar')
> AND
> tbl_c_id = (SELECT tbl_c_id FROM view_a WHERE id_x = 564 AND ident_y = 'foo' AND ident_z = 'bar')
> )
> ORDER BY ts DESC LIMIT 1
>
> Was mich stört ist der Umstand, dass eine Unterabfrage bzw. Subquery zweimal ausgeführt wird (wenn
> EXPLAIN nicht lügt), einmal wird halt tbl_b_id und einmal tbl_c_id geliefert, gibt es irgendwie eine
> Möglichkeit, dass ich die Zusammenfasse?
Was wäre mit
... WHERE (tbl_b_id, tbl_c_id) = (SELECT tbl_b_id, tbl_c_id FROM view_a WHERE id_x = 564 AND ident_y = 'foo' AND ident_z = 'bar') ...
Liebe Grüße,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Thomas Markus | 2014-04-01 12:25:50 | Re: Unterabfragen zusammenfassen??? |
Previous Message | Lars Grundei | 2014-04-01 12:17:30 | Re: Unterabfragen zusammenfassen??? |