MySQL如何处理错误:子查询返回超过1行?

MySQL如何处理错误:子查询返回超过1行?,mysql,select,subquery,where,Mysql,Select,Subquery,Where,我试图编写一个查询,它从满足某些复杂/嵌套条件的表中选择所有记录。我认为查询中的逻辑是正确的,但我遇到的问题是最后一个子查询(参见示例)返回的行数超过1行,这是我所期望/需要的。所以,问题是,我该如何处理?MySQL是否支持某种循环或设置标准 SELECT c.primary_key FROM esjp_content c WHERE template_id = ( SELECT DISTINCT esjp_content.template_id FROM esjp_conten

我试图编写一个查询,它从满足某些复杂/嵌套条件的表中选择所有记录。我认为查询中的逻辑是正确的,但我遇到的问题是最后一个子查询(参见示例)返回的行数超过1行,这是我所期望/需要的。所以,问题是,我该如何处理?MySQL是否支持某种循环或设置标准

SELECT c.primary_key
FROM esjp_content c
WHERE template_id = (
    SELECT DISTINCT esjp_content.template_id
    FROM esjp_content
    INNER JOIN esjp_hw_config ON esjp_content.template_id = esjp_hw_config.proc_id
    INNER JOIN esjp_assets ON esjp_hw_config.primary_key = esjp_assets.hw_config_id
    WHERE
        esjp_content.summary_id > 0
            AND
        (esjp_assets.asset_label='C001498500' OR esjp_assets.asset_label='H0065' OR esjp_assets.asset_label='L0009')
    )
        AND
    EXISTS (SELECT 1 FROM esjp_content c2 WHERE c2.summary_id = c.primary_key)
        AND
    c.primary_key != (
        /* This subquery returns more than 1 result. */
        SELECT esjp_signoffs.content_id
        FROM esjp_signoffs
        INNER JOIN esjp_assets ON esjp_signoffs.asset_id = esjp_assets.primary_key
        WHERE
            esjp_signoffs.user_id=1
                AND
            (esjp_assets.asset_label='C001498500' OR esjp_assets.asset_label='H0065' OR esjp_assets.asset_label='L0009')
    );

有关我的表格的更多详细信息,请参阅我今天早些时候制作的。(这是一个完全不同的问题。)

如果我正确理解

   c.primary_key != (
    /* This subquery returns more than 1 result. */
    SELECT esjp_signoffs.content_id
    FROM esjp_signoffs
    INNER JOIN esjp_assets ON esjp_signoffs.asset_id = esjp_assets.primary_key
    WHERE
        esjp_signoffs.user_id=1
            AND
        (esjp_assets.asset_label='C001498500' OR esjp_assets.asset_label='H0065' OR esjp_assets.asset_label='L0009')
);
返回多于一行。。你不能用在

  c.primary_key not in (

 inner join  (  ..... ) t on c.primary_key != t.the_column_you_need