任何人都可以帮我建立一个基于下面的查询的查询.
正如您所看到的,我有一个产品的规格和某些组在前端构建.我知道这个问题,1列不能同时是2个值,但我只需要那些2组中的那些产品.
为了说明,product_specification_sid,id 2 3和4是尺寸,de rest 8~11是颜色,所以我想选择一个有2和3的产品.
内部连接表double不是一个选项,因为组(大小,颜色)将来可能会有所不同.
SELECT
products.*,
categories.*,
manufacturers.*
FROM products
INNER JOIN product_categories ON product_category_pid = product_id
INNER JOIN categories ON product_category_cid = category_id
INNER JOIN manufacturers ON product_manufacturer = manufacturer_id
INNER JOIN product_specifications ON product_specification_pid=product_id
WHERE
product_active = 1
AND
(
product_specification_sid in (3)
AND
product_specification_sid in (8,9,6,7,10,11)
)
GROUP BY product_id
Run Code Online (Sandbox Code Playgroud)
您可以改用having子句.
SELECT
products.*,
FROM products
INNER JOIN product_categories ON product_category_pid = product_id
INNER JOIN categories ON product_category_cid = category_id
INNER JOIN manufacturers ON product_manufacturer = manufacturer_id
INNER JOIN product_specifications ON product_specification_pid=product_id
WHERE product_active = 1
GROUP BY product_id
HAVING COUNT(CASE WHEN product_specification_sid in (3) THEN 1 END) > 0
AND COUNT(CASE WHEN product_specification_sid in (8,9,6,7,10,11) THEN 1 END) > 0
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3292 次 |
| 最近记录: |