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

问题在于第二个 SELECT(列 -HandlingStatus)。我不明白,但是当列有结果时(作为独立查询测试) - 我得到一个空结果集,当没有结果时 - 我得到一个结果。为什么?

4

0 回答 0