首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在mysql中选择id不作为其他人的父级的值?

如何在mysql中选择id不作为其他人的父级的值?
EN

Stack Overflow用户
提问于 2011-07-29 07:36:50
回答 3查看 272关注 0票数 0

两个问题:

  1. My table有三个字段:idparent_idname。最初,id0,对于当前元素的子元素,parent_id设置为当前element....basically的id,无限嵌套概念。现在我需要找到那些没有子元素或子元素的元素。有什么想法吗?

  1. ,什么是检索我刚插入的记录的id(auto_increment)的最佳选择?mysql_insert_id,last_insert_id,还是别的什么?我需要同时插入两个记录,并使用第一个记录中的id(主键)作为第二个记录的外键。
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-29 08:31:32

我用以下方法解决了这个问题:

代码语言:javascript
复制
SELECT * FROM `nestmenu` WHERE `id` NOT IN (SELECT `parent_id` AS `id` FROM `nestmenu`)

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

票数 -1
EN

Stack Overflow用户

发布于 2011-07-29 07:58:23

1)不确定我是否理解您的模式和parent_id是如何工作的..。

代码语言:javascript
复制
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_insert_id在说什么.可能是PHP中的mysql_last_insert_id?这是一个PHP函数,它封装了对LAST_INSERT_ID()的调用。

票数 0
EN

Stack Overflow用户

发布于 2011-07-29 08:02:58

  1. 使用自连接

从表f中选择f.is、f.parent_id、f.name,在s.id = f.parent_id上左转连接表s,其中s.parent_id =0

last_insert_id使用

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6869974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档