sách gpt4 ai đã đi

Truy vấn SQL cứng - không có hàng khớp trong bảng khác hoặc có mục không được xuất bản trong bảng khác

In lại 作者:行者123 更新时间:2023-11-30 23:11:22 29 4
mua khóa gpt4 Nike

下面是我要执行的 SQL。我想避免为此执行多个请求,我很确定这是可能的……

First table : products_categories (category_id, category_infos…)
Second table : products_categories_relations (product_id, category_id)
Third table : products (product_id, published, products_infos…)

我想查找所有空类别(其中没有产品)和仅包含未发布产品的类别。第二部分是我卡住的地方。

SELECT pc.`category_id`
FROM `#__products_categories` AS pc
LEFT JOIN `#__products_categories_relations` pcr
ON pc.`category_id` = pcr.`category_id`
WHERE pcr.`category_id` IS NULL

此查询为我提供了没有产品的类别,但我看不到如何插入条件说:

"for each category with products, return the ones which contain ONLY products where published=0"

我的分析是:
如果 A 是查询“没有产品的类别”的结果
B是“只有未发布产品的类别”的结果
我需要 A 或 B 中的类别。

1 Câu trả lời

SELECT pc.`category_id`
FROM `#__products_categories` AS pc
LEFT JOIN `#__products_categories_relations` pcr
ON pc.`category_id` = pcr.`category_id`
LEFT JOIN (SELECT product_id, MAX(published) published
FROM products
GROUP BY product_id
HAVING published = 0) p
ON pcr.product_id = p.product_id
WHERE pcr.`category_id` IS NULL OR p.product_id IS NOT NULL

子查询查找所有未发布的产品。我们加入它,然后 WHERE 子句可以将不存在的产品与第一个测试匹配,或者将未发布的产品与第二个测试匹配。

关于mysql - 硬 SQL 查询 - 在另一个表中没有匹配的行或具有未在另一个表中发布的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19586961/

29 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com