0

私はこのクエリを持っています:

SELECT  CONCAT(f.name, ' ', f.parent_names) AS FullName, 
        stts.name AS 'Status', 
        u.name AS Unit, 
        city.name AS City, 
        hus.mobile1 AS HusbandPhone, 
        wife.mobile1 AS WifePhone, 
        f.phone AS HomePhone, 
        f.contact_initiation_date AS InitDate, 
        fh.created_at AS StatusChangeDate, 
        cmt.created_at AS CommentDate, 
        cmt.comment AS LastComment, 
        f.reconnection_date AS ReconnectionDate,
        (
            SELECT  GROUP_CONCAT(t.name) 
            FROM    taggings tgs JOIN tags t 
                    ON tgs.tag_id = t.id
            WHERE   tgs.taggable_type = 'family' AND 
                    tgs.taggable_id = f.id
        ) AS HandlingStatus
FROM    families f 
        JOIN categories stts ON f.family_status_cat_id = stts.id
        JOIN units u ON f.unit_id = u.id
        JOIN categories city ON f.main_city_cat_id = city.id
        JOIN contacts hus ON f.husband_id = hus.id
        JOIN contacts wife ON f.wife_id = wife.id
        JOIN comments cmt ON f.id = cmt.commentable_id AND 
                    cmt.created_at = (SELECT MAX(created_at) FROM comments WHERE commentable_id = f.id)
        JOIN family_histories fh ON f.id = fh.family_id AND 
                    fh.created_at = (SELECT MAX(created_at) FROM family_histories WHERE family_id = f.id AND family_history_cat_id = 1422) AND 
                fh.family_history_cat_id = 1422
WHERE   f.id = 12212

問題は、2 番目の SELECT (列 - HandlingStatus) にあります。わかりませんが、列に結果がある場合 (スタンドアロン クエリとしてテスト) - 空の結果セットが得られ、結果がない場合 - 結果が得られます。なんで?

4

0 に答える 0