如何优化mysql查询获取类别和子类别

Gre*_*Cat 2 php mysql optimization mysqli

我创建了一个脚本,用于构建包含类别,子类别和子子类别的菜单.为了获得这些项目,我使用3个单独的MySQL查询.如下:

要检索主要类别:

SELECT id, name FROM categories WHERE parent_id=0
Run Code Online (Sandbox Code Playgroud)

要检索我使用的每个类别的子类别:

SELECT id, name FROM categories WHERE parent_id=?
Run Code Online (Sandbox Code Playgroud)

在哪里?是父类别的ID.然后,我再次为每个子类别运行查询.

如何优化此脚本以使用较少的SQL查询?先感谢您.

Dev*_*art 12

试试这个查询 -

类别+子类别:

SELECT c1.id, c1.name, c2.id, c2.name FROM categories c1
  LEFT JOIN categories c2
    ON c2.parent_id = c1.id
WHERE c1.parent_id = 0
Run Code Online (Sandbox Code Playgroud)

类别+子类别+子子类别:

SELECT c1.id, c1.name, c2.id, c2.name, c3.id, c3.name FROM categories c1
  LEFT JOIN categories c2
    ON c2.parent_id = c1.id
  LEFT JOIN categories c3
    ON c3.parent_id = c2.id
WHERE c1.parent_id = 0
Run Code Online (Sandbox Code Playgroud)