首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从父类别中的子类别中选择所有产品

从父类别中的子类别中选择所有产品
EN

Stack Overflow用户
提问于 2017-12-24 12:36:07
回答 4查看 1.2K关注 0票数 0

我有以下“类别”表:

代码语言:javascript
复制
+--------+---------------+----------------------------------------+
| ID     | Parent ID     | Name                                   |
+--------+---------------+----------------------------------------+
| 1      | 0             | Computers                              |
| 2      | 1             | Apple                                  |
| 3      | 1             | HP                                     |
| 4      | 2             | Macbook Air                            |
| 5      | 2             | Macbook Pro                            |
| 6      | 1             | Dell                                   |
| 7      | 6             | Inspiron                               |
| 8      | 6             | Alienware                              |
| 9      | 8             | Alienware 13                           |
| 10     | 8             | Alienware 15                           |
| 11     | 8             | Alienware 17                           |
| 12     | 0             | Smartphones                            |
| 13     | 12            | Apple                                  |
| 14     | 12            | Samsung                                |
| 15     | 12            | LG                                     |
+--------+---------------+----------------------------------------+

假设我有以下“产品”表:

代码语言:javascript
复制
+--------+---------------+----------------------------------------+
| ID     | Category ID   | Name                                   |
+--------+---------------+----------------------------------------+
| 1      | 13            | Apple iPhone 8                         |
| 2      | 13            | Apple iPhone 8 Plus                    |
| 3      | 14            | Samsung Galaxy S8                      |
+--------+---------------+----------------------------------------+

使用以下查询,我选择一个类别中的所有产品:

代码语言:javascript
复制
SELECT
    id,
    name
FROM
    products
WHERE
    category_id = ?

好的,我的问题是:

产品“苹果iPhone 8”属于苹果,这是智能手机的一个子类别。如果我替换“?”在我对13 (Apple的类别ID )的查询中,我得到了该产品。当我替换“?”在我对12 (智能手机的类别ID )的查询中,我没有得到该产品。我想选择所有的产品是在类别中或在一个子/外孙/.类别。如果可能的话,我如何使用一个查询来完成这个任务?

EN

回答 4

Stack Overflow用户

发布于 2017-12-24 12:40:58

您可以使用join。你的query应该是这样的

代码语言:javascript
复制
SELECT
    id,
    name
FROM
    products
JOIN 
    categories
ON 
    products.category_id = categories.id;
票数 0
EN

Stack Overflow用户

发布于 2017-12-24 12:45:41

它可以通过连接来实现。

在products.category_id = categories.id上从产品联接类别中选择id,名称,其中products.category_id = 13或categories.parent_id = 12

票数 0
EN

Stack Overflow用户

发布于 2017-12-24 13:17:55

在products.category_id = categories.id上从产品左边的联接类别中选择id,name

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47960642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档