Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql中,如何选择一个id不存在的值作为其他值的父级?_Mysql - Fatal编程技术网

在mysql中,如何选择一个id不存在的值作为其他值的父级?

在mysql中,如何选择一个id不存在的值作为其他值的父级?,mysql,Mysql,两个问题: 我的表有三个字段:id、parent\u id、name。初始id 为0,对于当前元素的子元素 父元素id设置为当前元素的id…基本上, 无限嵌套概念。现在我需要找到那些 没有任何子元素或子元素。有什么想法吗? 检索a的idauto_增量的最佳选择是什么 我刚插入的唱片?mysql\u insert\u id或last\u insert\u id,或 还有别的吗?我需要同时插入两条记录并使用 第一条记录中的idprimary密钥作为第二条记录的外键 记录 我不确定我是否了解您的模式以

两个问题:

我的表有三个字段:id、parent\u id、name。初始id 为0,对于当前元素的子元素 父元素id设置为当前元素的id…基本上, 无限嵌套概念。现在我需要找到那些 没有任何子元素或子元素。有什么想法吗? 检索a的idauto_增量的最佳选择是什么 我刚插入的唱片?mysql\u insert\u id或last\u insert\u id,或 还有别的吗?我需要同时插入两条记录并使用 第一条记录中的idprimary密钥作为第二条记录的外键 记录
我不确定我是否了解您的模式以及家长id是如何工作的

SELECT
  t1.id
FROM
  table t1
LEFT OUTER JOIN
  table t2
ON
  t1.id = t2.parent_id
WHERE
  t2.parent_id IS NULL
2 LAST_INSERT_ID是返回连接上生成的最后一个自动增量的函数。我不知道mysql\u insert\u id指的是什么。。。mysql\u last\u insert\u id在PHP中是否可能?这是一个PHP函数,用于包装对LAST_INSERT_ID的调用

使用自连接 使用最后一个\u插入\u id 我用以下方法解决了这个问题:

SELECT * FROM `nestmenu` WHERE `id` NOT IN (SELECT `parent_id` AS `id` FROM `nestmenu`)

但是,正如您所知,这个查询根本没有经过优化,但它确实完成了任务。有什么办法可以优化它吗

这是一个层次化的数据库模型。我们已经了解了很多,但表示层次结构的方法不止一种。Dan,你有没有参考过一些例子?我也试图在我的一个项目中实现这一点,但只是遇到了这一点。你尝试过我和其他人提出的建议吗?它们确实有效,MySQL倾向于比子查询更好地优化连接……是的,我试过了,但是你的建议没有给出我需要的结果
SELECT * FROM `nestmenu` WHERE `id` NOT IN (SELECT `parent_id` AS `id` FROM `nestmenu`)