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