
查找属于3个以上私有类别的产品列表的SQL是什么。
我试过这个:
SELECT
    products.*
FROM
    products
    INNER JOIN
    product_categories
    ON 
        products.product_id = product_categories.product_id
    INNER JOIN
    categories
    ON 
        product_categories.category_id = categories.category_id
WHERE
    categories.is_private = 1
GROUP BY
    categories.category_id
HAVING
    COUNT(categories.category_id) > 3谢谢!
发布于 2020-08-31 21:24:29
你需要每一件产品的巫师...所以你应该在productID.also上做group by,你可以在'select‘和'group by’中添加你需要的其他产品列
SELECT
    products.product_id,products.name
FROM
    products
    INNER JOIN
    product_categories
    ON 
        products.product_id = product_categories.product_id
    INNER JOIN
    categories
    ON 
        product_categories.category_id = categories.category_id
WHERE
    categories.is_private = 1
GROUP BY
    products.product_id,products.name
HAVING
    COUNT (categories.category_id) > 3发布于 2020-08-31 22:14:51
如果按products.product_id聚合,查询将是正确的--根据数据库的不同,可能需要在SELECT中包含其他列。但是假设product_id在该表中是唯一的,那么它就是有效的SQL。
如果您只需要产品If,则不需要products表:
select pc.product_id
from product_categories pc join
     categories c
     on pc.category_id = c.category_id
where is_private = 1
group by pc.product_id
having count(*) > 3;发布于 2020-08-31 21:31:59
要获取所有产品列,请执行以下操作:
SELECT products.*
FROM products p
WHERE product_id in (SELECT pc.product_id
                       FROM product_categories pc
                      INNER JOIN categories c ON pc.category_id = c.category_id
                      WHERE c.is_private = 1
                      GROUP BY c.category_id
                     HAVING COUNT(c.category_id) > 3)https://stackoverflow.com/questions/63671240
复制相似问题