Php e需要嵌套级别,但这也会非常麻烦。另一个解决方案可能是,如果您知道嵌套永远不会超过,比如说五个级别,那么您可以使用一个包含这五个级别的语句。但是,如果您希望满足不确定数量的级别,则必须更改数据库模型或数据库引擎。我们已经评估了嵌套模型,并认为这是继续的方法

Php e需要嵌套级别,但这也会非常麻烦。另一个解决方案可能是,如果您知道嵌套永远不会超过,比如说五个级别,那么您可以使用一个包含这五个级别的语句。但是,如果您希望满足不确定数量的级别,则必须更改数据库模型或数据库引擎。我们已经评估了嵌套模型,并认为这是继续的方法,php,mysql,recursion,parent,Php,Mysql,Recursion,Parent,e需要嵌套级别,但这也会非常麻烦。另一个解决方案可能是,如果您知道嵌套永远不会超过,比如说五个级别,那么您可以使用一个包含这五个级别的语句。但是,如果您希望满足不确定数量的级别,则必须更改数据库模型或数据库引擎。我们已经评估了嵌套模型,并认为这是继续的方法。非常感谢你在这方面帮助我们。考虑到新模型的复杂性,我认为您应该期待我在适当的时候提出更多的问题;)谢谢你的建议,J,你会给我一个测试,但是我开始考虑重新设计。重新设计也有利于未来的发展。我的建议只是一种变通办法,仅此而已。如果您必须保持不同级


e需要嵌套级别,但这也会非常麻烦。另一个解决方案可能是,如果您知道嵌套永远不会超过,比如说五个级别,那么您可以使用一个包含这五个级别的语句。但是,如果您希望满足不确定数量的级别,则必须更改数据库模型或数据库引擎。我们已经评估了嵌套模型,并认为这是继续的方法。非常感谢你在这方面帮助我们。考虑到新模型的复杂性,我认为您应该期待我在适当的时候提出更多的问题;)谢谢你的建议,J,你会给我一个测试,但是我开始考虑重新设计。重新设计也有利于未来的发展。我的建议只是一种变通办法,仅此而已。如果您必须保持不同级别的关系,并且继续使用mysql,那么Lieven的建议是最合适的。不客气,祝你好运:)
SELECT * 
FROM sch_part_general 
WHERE (sch_part_general.part_id <> $parentId) 
AND (sch_part_general.part_id NOT IN 
  (SELECT part_id FROM sch_part_mapping WHERE parent_id = $parentId)
)
SELECT * 
FROM sch_part_general 
WHERE (sch_part_general.part_id <> $parentId) 
AND (sch_part_general.part_id NOT IN 
  (SELECT part_id FROM sch_part_mapping WHERE parent_id = $parentId)

//addition here 
and not exists (select * from sch_part_mapping where hierarchy_id= ? and parent_id = sch_part_general.part_id)

)
SELECT * 
    FROM sch_part_general 
    WHERE (sch_part_general.part_id <> $parentId) 
    AND (sch_part_general.part_id NOT IN 
      (SELECT part_id FROM sch_part_mapping WHERE parent_id = $parentId)

    //addition here 
    and not exists (select * from sch_part_mapping where hierarchy_id= (select hierarchy_id from sch_part_mapping where parent_id = $parentId limit 1) and parent_id = sch_part_general.part_id)


)