【问题标题】:Mysql intended parent child select viewMysql意在父子选择视图
【发布时间】:2012-09-12 04:29:48
【问题描述】:

我有如下表的父子 ID

id    name     parent_id
1    parent       0 
2    child-1      1
3    child-1      1 
4    parent2      0
5    child-1      1
6    child-2      4 

我需要得到如下结果。

  parent
    #child-1
    #child-1
    #child-1
  parent2
    #child-2

这可以在单个查询中完成吗?

【问题讨论】:

  • 这不是你在 MySQL 中真正要做的事情;这是你在输出中处理的东西。你用什么输出mysql查询?如果您仅在 mysql 命令行中执行此操作,那么您所拥有的将是最好的。但是,如果您可以使用其他东西(bash、PHP、Java、C 等),那么您需要让我们知道您使用什么语言来进行 MySQL 调用
  • 我使用php,我不能写两个查询,因为我的分页会受到影响。
  • @diEcho :我尝试使用 order by,但没有帮助。因为我需要将所有子项列出(下一个)到父项。

标签: php mysql treeview parent-child


【解决方案1】:

认为这对你有用,但你没有给我们太多的东西:

在 MySQL 中:SELECT ... ORDER BY parent_id

在 PHP 中(这部分是伪代码(ish)):

if($parent_id==0) {
    //is a parent; no indent
} else {
    //not a parent; do the indent
}

【讨论】:

  • 我需要列出所有子项(下一个)到父项
  • @gowri:你真的没有告诉我们太多。你的 MySQL 表是什么样的?您正在使用什么查询?你试过什么?
  • 我已经在我的问题中给出了带有示例数据的结构表。我在您的回答“SELECT ... ORDER BY parent_id”中尝试过。我还需要什么?
  • 什么是 parent_id?那是另一个表的外键吗?如果它只是一个整数,那么这个值是什么意思?什么名字?那是一个varchar()吗?可能的值是多少?数据是如何插入到数据库中的?你为什么要按照你的方式选择表结构?您是否考虑过更改表结构以使查询更容易(例如,排序列)?您是否考虑过将父母和孩子分成不同的表并进行内部联接?
猜你喜欢
  • 1970-01-01
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多