php - 如何在php中获取父亲的名字

标签 php mysql

我有一个示例代码:

products(id, parent_id, name)
1 | 0 | product1
2 | 0 | product2
3 | 1 | product1_1
4 | 1 | product1_2
5 | 2 | product2_1
6 | 2 | product2_2

并查询:

SELECT prod.id, prod.name
FROM `products` AS prod
INNER JOIN `products` AS prod_parent ON prod_parent.product_id = prod.parent_id

但结果是:

3 | product1_1
4 | product1_2
5 | product2_1
6 | product2_2

如何获取 parent 的父亲

 1 | product1
 2 | product2

最佳答案

在您的 SELECT 列表中具体说明您希望它们来自哪个表。这将为您提供所有四列,但您可以将其修剪为仅需要的列。

SELECT 
  prod.id AS prod_id,
  prod.name AS prod_name,
  prod.parent_id AS parent_id,
  prod_parent.name AS parent_name
FROM `products` AS prod
LEFT JOIN `products` AS prod_parent ON prod_parent.product_id = prod.parent_id

关于php - 如何在php中获取父亲的名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11255239/

相关文章:

javascript - 多次启动 jQuery 函数

php - Paypal : By One click Transfer payment from Merchant account to any paypal account using PHP

php - PDOStatement::execute(): SQLSTATE[HY093]: 参数编号无效:参数未在第 29 行的 add_product.php 中定义

php - 如何从生成的 php 表中获取 id 的值并删除具有该 id 的行

php - mysql 在一个查询上进行多个连接

php - Slim\Exception\HttpNotFoundException

javascript - (初学者)如何动态修改一个json文件

mysql - 在 MySQL 上创建存储过程

mysql - Hibernate 工具无法识别多对多关系

MySQL - 在多个没有关系的表上使用 FIND_IN_SET