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