我必须检查我销售的产品(主要是游戏机和游戏)
我想看看哪些产品有哪些类别,这是我的查询:
select * From products left join products_categories on (product_id=id) ;
+------+------+------------+-------------+----------
| id | name | product_id | category_id | and more
+------+------+------------+-------------+----------
| 4 | Xbox | 4 | 2 |
| 5 | PS3 | 5 | 2 |
| 7 | BAD | NULL | NULL |
etc...
+------+------+------------+-------------+---------
Run Code Online (Sandbox Code Playgroud)
在这里,我有一个产品(#7 - BAD),我不想看到,因为我删除了类别,
我不希望看到没有类别的产品?
LEFT JOIN命令用于组合存储在相关表中的空匹配行.为了连接这些表,连接表需要左表中的公共字段(通常称为外键).此类连接需要关键字ON或USING.
例:
SELECT *
From products
LEFT JOIN products_categories ON (product_id=id)
WHERE product_id IS NOT NULL;
Run Code Online (Sandbox Code Playgroud)
或者您可以使用INNER JOIN:
JOIN或INNER JOIN命令用于组合存储在相关表中的非空匹配行为了连接这些表,连接表需要左表中的公共字段(通常称为外键).此类连接需要关键字ON或USING.
例:
SELECT * From products INNER JOIN products_categories ON (product_id=id);
Run Code Online (Sandbox Code Playgroud)
现在,我建议为非活动或活动产品添加标记,这样您就不需要删除产品的类别(如果它处于非活动状态).这样,如果要重新激活它,只需将标志恢复为1或您使用的任何标志.
例:
SELECT *
FROM products
INNER JOIN products_categories ON (product_id=id)
WHERE products.is_active = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |