gpt4 book ai didi

php - MySQL 将父项作为标题,将子项作为项目

转载 作者:行者123 更新时间:2023-11-29 18:35:43 25 4
gpt4 key购买 nike

你好,我有一个像这样的数据库结构和其中的一些数据

id | parent_id | name

1 | 0 | Nissan
2 | 1 | 240SX
3 | 1 | 350z
4 | 0 | Toyota
5 | 4 | Camry
6 | 4 | Prado
7 | 1 | Skyline
8 | 4 | Hilux

我想以 Nissan 为标题,然后展示所有车型。以及标题为丰田及其下方的车型。如何使用一个查询来实现这一目标?这可能吗?

最佳答案

您应该标准化您的数据库或至少将您的列分开,以便有制造商列和型号列。然后,这将帮助您执行诸如

之类的查询
SELECT * FROM CARS WHERE manufacturer = 'Toyota';
or
SELECT * FROM CARS GROUP BY manufacturer;

但最佳实践是有一个用于存储制造商的表和一个用于存储所有汽车型号的表,然后是一个用于存储汽车本身的表,该表将有 2 列从其他 2 个表引用。

所以这将变成:编号 |父 ID |制造商_id |型号_id

1 | 0 | 1 | 2 |

2 | 1 | 4 | 1 |

3 | 1 | 3 | 6 |

4 | 0 | 3 | 9 |

然后您将执行一个查询来连接 3 个表

SELECT cars.id, cars.parent_id, cars.manufacturer_id, cars.model_id, t1.manufacturer_name, t2.model_name from CARS
JOIN manufacturer_table t1
ON t1.manufacturer_id = cars.manufacturer_id
JOIN model_table t2
ON t2.model_id = cars.model_id

希望有帮助

关于php - MySQL 将父项作为标题,将子项作为项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45320573/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com