【问题标题】:mysql select categories e subcategories from the same tablemysql 从同一个表中选择类别 e 子类别
【发布时间】:2020-08-11 16:11:06
【问题描述】:

我有一个名为“产品”的表格:

id INT 11
product_name VARCHAR 255
category VARCHAR 255
subcategory VARCHAR 255
subsubcategory VARCHAR 255

我想在一个查询中阅读所有类别、子类别和子子类别(每个类别仅一次)。

现在我有以下查询,但我不确定它是否有效:

SELECT category, subcategory, subsubcategory FROM products WHERE category != '' GROUP by category, subcategory, subsubcategory ORDER by category ASC, subcategory ASC, subsubcategory ASC

输出应该是这样的:

clothes (main category)
clothes > pants (sub category)
clothes > pants > man (sub sub category)
clothes > pants > woman
clothes > skirt
jewelry
jewelry > necklace

【问题讨论】:

  • 您的选择查询与您的表定义不匹配。请修复它们。
  • 您的预期输出令人困惑。你想达到什么目标?为什么需要这样的表结构?我认为这些问题的答案将有助于理解问题。

标签: php mysql select


【解决方案1】:

你可以这样做:

select category as rendered from products
union all 
select concat(category, ' > ', subcategory) from products
union all 
select concat(category, ' > ', subcategory, ' > ', subsubcategory) from products
order by rendered

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-26
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2016-09-03
    • 2017-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多