php - 如何在 MySQL 的单个查询中选择所有具有 main_category_name 和 parent_id 的 sub_category 记录?

标签 php mysql

我的类别表如下所示:

------------------------------------
id  |   name         | parent_id   |
------------------------------------
1   |  Vehicles      |   0         |
2   |  Car Insurance |   1         |
3   |  Van Insurance |   1         |
4   |  PhoneRecharge |   0         |
5   |  prepaid       |   4         |
6   |  postpaid      |   4         |

输出应该如下所示:

---------------------------------------------------------
id  | parent_id | main_category_name | sub_category_name|
---------------------------------------------------------
2   |  1        |   Vehicles         | Car Insurance    |
3   |  1        |   Vehicles         | Van Insurance    |
5   |  4        |   PhoneRecharge    | prepaid          |
6   |  4        |   PhoneRecharge    | postpaid         |

要获得上述记录,我需要尽量减少与数据库的交互。所以我需要在单个查询中获得上述数据。

最佳答案

给你:http://sqlfiddle.com/#!9/1b1a7a/14

查询语句: SELECT * FROM category t1 INNER JOIN(SELECT * FROM category WHERE parent_id != 0)t2 ON t1.id = t2.parent_id

关于php - 如何在 MySQL 的单个查询中选择所有具有 main_category_name 和 parent_id 的 sub_category 记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40434884/

相关文章:

php - PHP中的特殊随机算法

php - 如何使数据库时间戳与用户时区相关

MySQL ORDER BY 2列有异常

php - Mysql查询使用WHEN和AND更新具有多个条件的多列

MySQL 根据前一行(同一列)更新列

php - 单击按钮后将数据库的值更改为当前日期和时间

PHP/MySQL 使用 bootstrap 输出到表中 - 列困惑

javascript - 用于 Facebook 共享的 Open Graph 选择了错误的图像

php - 如何检查 APC 操作码缓存是否在 PHP 中正常工作?

MySQL:生成列的表达式包含不允许的函数