【问题标题】:Multiple select queries in WHERE IN statementWHERE IN 语句中的多个选择查询
【发布时间】:2017-07-03 11:42:42
【问题描述】:

我有以下 sql 查询:

SELECT `main_table`.* FROM `prd_brand` AS `main_table`
INNER JOIN 
    (SELECT DISTINCT value from catalog_product_entity_int where row_id in 
        (select row_id from catalog_product_entity_int where attribute_id = 97 and value = 1) , 
        (select row_id from catalog_product_entity_int where attribute_id = 99 and value = 4)) t 
ON main_table.brand_id = t.value

是否可以在WHERE IN 语句中添加多个select 查询。

顺便说一句,执行查询时我有#1248 - Every derived table must have its own alias

【问题讨论】:

    标签: mysql sql where-in


    【解决方案1】:

    我不太确定您的查询要做什么。但这似乎是一种更简单的逻辑编写方式:

    SELECT b.* 
    FROM `prd_brand` AS b INNER JOIN 
        (SELECT DISTINCT value 
         FROM catalog_product_entity_int 
         WHERE (attribute_id, value) IN ( (97, 1), (99, 4) )
        ) t
        ON b.brand_id = t.value
    

    【讨论】:

    • 此查询获取所有具有 97-1 AND 99-4 作为 attribute_id-value 或 97-1 OR 99-4 的行?我执行了它,它看起来像 OR(我需要它们之间的 AND)。
    • @androniennn 。 . .你应该问另一个关于你想要什么的明确问题。样本数据和所需结果的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-23
    • 2022-01-09
    • 1970-01-01
    相关资源
    最近更新 更多