我想知道如果product_id没有在其他表中分配任何category_id,我可以将产品状态更改为0.
+------------+----------+ +------------+-------------+
| Product_id | Status | | Product_id | cateogry_id |
+------------+----------+ +------------+-------------+
| 1 | 1 | | 1 | 10 |
| 2 | 1 | | 3 | 20 |
| 3 | 1 | +------------+-------------+
+------------+----------+
Run Code Online (Sandbox Code Playgroud)
结果我需要product_id = 2,它没有类别状态为0.是否有一个MySQL查询?
首先,您需要获取表中不存在的行.
table1是具有状态
table2的表,是具有类别id的表
table1 table2
+------------+----------+ +------------+-------------+
| Product_id | Status | | Product_id | cateogry_id |
+------------+----------+ +------------+-------------+
| 1 | 1 | | 1 | 10 |
| 2 | 1 | | 3 | 20 |
| 3 | 1 | +------------+-------------+
+------------+----------+
Run Code Online (Sandbox Code Playgroud)
所以现在运行此查询以获取没有category_id的行
SELECT product_id
FROM table1 t
LEFT JOIN table2 t2 ON t2.product_id = t.product_id
WHERE t2.product_id IS NULL
Run Code Online (Sandbox Code Playgroud)
现在像这样更新table1
UPDATE table1 t,
( SELECT product_id
FROM table1 t
LEFT JOIN table2 t2 ON t2.product_id = t.product_id
WHERE t2.product_id IS NULL
) t1
SET t.status = 0
WHERE t1.product_id = t.product_id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
456 次 |
| 最近记录: |