【发布时间】:2016-01-08 05:50:34
【问题描述】:
我有两个名为“类别”和“产品”的 mysql 表。
这些是该表的数据。
mysql> select * from categories;
+-------------+--------+----------------------+-------------+
| category_id | parent | name | description |
+-------------+--------+----------------------+-------------+
| 1 | NULL | Products | NULL |
| 2 | 1 | Computers | NULL |
| 3 | 2 | Laptops | NULL |
| 4 | 2 | Desktop Computers | NULL |
| 5 | 2 | Tab PCs | NULL |
| 6 | 2 | CRT Monitors | NULL |
| 7 | 2 | LCD Monitors | NULL |
| 8 | 2 | LED Monitors | NULL |
| 9 | 1 | Mobile Phones | NULL |
| 10 | 9 | LG Phone | NULL |
| 11 | 9 | Anroid Phone | NULL |
| 12 | 9 | Windows Mobile | NULL |
| 13 | 9 | iPad | NULL |
| 14 | 9 | Samsung Galaxy | NULL |
| 15 | 1 | Digital Cameras | NULL |
| 16 | 1 | Printers and Toners | NULL |
| 22 | 1 | Computer Accessaries | NULL |
| 23 | 22 | USB Cables | NULL |
| 24 | 22 | Network Cables | NULL |
+-------------+--------+----------------------+-------------+
24 rows in set (0.00 sec)
mysql> select product_id, category_id from products;
+------------+-------------+
| product_id | category_id |
+------------+-------------+
| 1 | 24 |
| 2 | 6 |
| 3 | 6 |
| 4 | 6 |
+------------+-------------+
4 rows in set (0.05 sec)
现在我需要创建一个选择查询来获取每个类别的产品。我已经有category_id。
我是这样尝试的:
SELECT * FROM products
WHERE category_id = 6
ORDER BY added_date DESC
我的问题是,当我创建此选择查询时,如果一个类别有其子类别,我需要所有产品。这意味着,如果 category_id 为 2,那么我需要获取所有产品,包括其子类别。
谁能告诉我如何创建这个选择查询?
谢谢。
【问题讨论】:
-
category_id 2 的子类别是 22、23 和 24?
-
没有。 3,4,5,6,7,8 是 category_id 2 的子类别。您可以在我的问题中看到类别的数据。谢谢。