SQL-如何在子选择查询中使用父选择的ID

时间:2019-09-19 14:37:44

标签: sql postgresql

我需要使用使用第二个选择的CASE语句进行查询,在第二个选择中,我需要在where子句中使用父级的选择ID。

它看起来像这样:

    SELECT "OFF_ID" AS "ID_P",
    CASE 
       WHEN 
         ( SELECT "OFF_NUMBER" FROM "OFFER_COPY" 
          WHERE "OFF_C_ID" = "ID_P" <-- I need to map to the parent ID
         ) > 0
       THEN 'JOHN'
       ELSE  'DOE'
        END AS "TEST",
    FROM "OFFER"

1 个答案:

答案 0 :(得分:1)

您应该始终对列名进行限定,尤其是在相关子查询中:

SELECT o."OFF_ID" AS "ID_P",
       (CASE WHEN (SELECT oc."OFF_NUMBER"
                   FROM "OFFER_COPY" oc
                   WHERE oc."OFF_C_ID" = o."OFF_ID" 
                  ) > 0
             THEN 'JOHN' ELSE  'DOE'
        END) AS "TEST",
FROM "OFFER" o
相关问题