ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MySQL Looped Join如何测试结果是否完整?

2019-10-10 07:18:17  阅读:189  来源: 互联网

标签:mysql loops join


情况:
我有一个mysql目录表.每个目录都有一个父目录(存储为parentID),直到根目录的parentID为0为止.

例如.:

rowID: 1, name: Dir1,    parentID: 0 (root directory)
rowID: 2, name: Dir2,    parentID: 0 (root directory)
rowID: 3, name: Subdir1, parentID: 1 (lives in "Dir1")
rowID: 4, name: Subdir2, parentID: 1 (lives in "Dir1")
rowID: 5, name: Subdir3, parentID: 3 (lives in "Subdir1", which in turn lives in "Dir1")
rowID: 6, name: Subdir4, parentID: 5 (lives in "Subdir3", which lives in "Subdir1", which lives in "Dir1")

因此,这里有一个3目录深度结构.

我需要构建一条将任何目录都连接到其父目录的语句,并继续这样做,直到最后一个连接目录的父目录ID为0(即找到根目录).您可以想到它,就好像在给定任何目录的情况下,您都可以找到返回到父级的面包屑.

我认为这可能需要一些MySQL循环,但对于我自己的一生,我无法使用任何网络示例.我什至无法运行某些示例,因为它们似乎存在某种语法错误.谁能帮助我入门?

我可以接受任何最简单的结果格式并提供最佳性能来完成此操作.以正确的顺序排列一个简单的行号数组(例如5、3、1、0,表示获得ID为0的步骤),或者是一个完整的表(最佳),它将是达到此目的的行的有序列表,例如

rowID: 5, name: Subdir3, parentID: 2;
rowID: 3, name: Subdir1, parentID: 1;
rowId: 1, name: Dir1,    parentID: 0;

帮助非常感谢!

解决方法:

嗯,可能是您没有找到一个很好的网络示例,因为您使用了错误的搜索词.
所描述的问题完全适合于oracle CONNECT BY PRIOR语句,并且通过对与该语句等效的mysql进行谷歌搜索,可以很快找到http://explainextended.com/2009/03/17/hierarchical-queries-in-mysql/.

因为编写这些内容并不那么容易(并且我没有在这里强奸mysql-db),所以请看一下给出的好示例(您甚至可以在没有通过http://explainextended.com/2009/07/20/hierarchical-data-in-mysql-parents-and-children-in-one-query/部署功能的情况下完成此操作).

如果您仍然不了解这些建议,我也许可以在家里提供帮助.

标签:mysql,loops,join
来源: https://codeday.me/bug/20191010/1885408.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有