WHERE IN 语句中的多个 select 查询

Multiple select queries in WHERE IN statement

我有以下 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.

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

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