Re: Unterabfragen zusammenfassen???

Thomas Markus <[email protected]> Tue, 01 Apr 2014 14:25:50 +0200
Newsgroups gmane.comp.db.postgresql.german
Organization proventis GmbH
Message-ID <[email protected]>
Hi,

da war ich etwas blind, den einen join kann man natÃŒrlich weglassen. Und
es war ein copy&paste Fehler drin (v1/v2)


SELECT
    CASE WHEN d.val = 0 THEN FALSE ELSE TRUE END AS result
FROM
         tbl_d d
    join tbl_a a on d.tbl_a_id=a.id
    join view_a v1 on
        d.tbl_d_id=v1.tbl_b_id and d.tbl_c_id=v1.tbl_c_id
        and v1.id_x = 564 AND v1.ident_y = 'foo' AND v1.ident_z = 'bar'
   
ORDER BY d.ts DESC LIMIT 1

Gruss
Thomas   

Am 01.04.2014 12:39, schrieb Thomas Markus:
> Moins,
>
> bereite die Query doch mal auf ;) so kann die nicht funktionieren
>
> Ich wÃŒrde die auf joins umstellen (hoffe es ist richtig so)
>
> SELECT
>     CASE WHEN d.val = 0 THEN FALSE ELSE TRUE END AS result
> FROM
>          tbl_d d
>     join tbl_a a on d.tbl_a_id=a.id
>     join view_a v1 on d.tbl_d_id=v1.tbl_b_id and v1.id_x = 564 AND
> v1.ident_y = 'foo' AND v1.ident_z = 'bar'
>     join view_a v2 on d.tbl_c_id=v1.tbl_c_id and v2.id_x = 564 AND
> v2.ident_y = 'foo' AND v2.ident_z = 'bar'
>    
> ORDER BY d.ts DESC LIMIT 1
>
> das view_a doppelt auftritt lÀsst sich wohl kaum vermeiden
>
> Gruss
> Thomas   
>
> Am 01.04.2014 12:14, schrieb Lars Grundei:
>>
>> Hallo Zusammen,
>>
>>  
>>
>> 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?
>>
>>  
>>
>> Vielen Dank
>>
>> Lars
>>
>