作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在研究家谱数据库。简单来说,一个名为 ancestors
的表由具有以下结构的记录组成:
name_id | name | mother_id | father_id
---------+------+-----------+-----------
1 | John | 2 | 3
2 | Mary | 4 | 5
3 | Dave | 6 | 7
第一个查询查找 John 的父 ID:例如,John 的 parent 的 ID 为 2 和 3
然后两个进一步的查询找到父 ID 的父名称:Parent id 2 的名字叫 Mary,Parent id 3 的名字叫 Dave
已使用三个查询发现:约翰的 parent 叫玛丽和戴夫。
这可以通过单个查询完成吗,性能会有所提高吗?
最佳答案
SELECT me.name,
mother.name,
father.name
FROM ancestors me
JOIN ancestors mother
ON me.mother_id = mother.name_id
JOIN ancestors father
ON me.father_id = father.name_id
WHERE ancestors.id = 1
;
是的,运行上述查询通常比运行三个单独的查找查询更快。
关于mysql - 如何在 mysql 中进行多个自连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8988757/
我是一名优秀的程序员,十分优秀!