1. SQL / Говнокод #3939

    −865

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    (
             (                      
                    ((
                            SELECT a.* FROM collections a
                            LEFT JOIN link_xml_collections lxa ON
    lxa.collection_id = a.id
                            WHERE lxa.xml_id IS NULL
                    ) UNION (
                            SELECT a.* FROM collections a
                            WHERE get_action_of_collection_last_xml(a.id, a.modified) = 3
                    )) INTERSECT (
                            SELECT a.* FROM collections a
                            LEFT JOIN link_collection_compositions AS lcc ON lcc.collection_id = a.id
                            LEFT JOIN compositions AS c ON c.id = lcc.composition_id
                            WHERE c.status = 0
                    )
           ) INTERSECT (
                    SELECT a.* FROM public.collections AS a
                    LEFT JOIN link_collection_compositions AS lcc ON lcc.collection_id = a.id
                    LEFT JOIN compositions AS c ON c.id = lcc.composition_id  WHERE c.owner_id = 6 AND a.modified >= '2010-08-10 00:00:00'
            )
    ) EXCEPT (
            SELECT a.* FROM collections a WHERE a.title_ua ILIKE 'TEST%'
    )

    Попросили пофиксить багу в функции, которая в зависимости от передаваемых параметров формировала sql запрос и возвращала данные. (Человек коротый это писал уволился.) Решил залогировать конечный sql запрос - получилось такое.

    Запостил: antonfin, 11 Августа 2010

    Комментарии (2) RSS

    Добавить комментарий