场景是这样的
key | value | sponsor_id
===================================
1 | mykel | 0
2 | sydney | 1
3 | darren | 2
4 | luis | 3
我想实现的是这样的
SELECT * FROM tbl WHERE sponsor_id = 0;
所以基本上,“mykel”字段将被选中。但是,我还想选择 sponsor_id 0 的所有子元素;
如表所示
- 1 连接到 0
- 2 连接到 1
- 3 连接到 2
总之,我想选择从父索引 0 开始的行以及直接或间接连接到它的所有子行。
是否可以使用一个直接查询来实现?
最佳答案
找到这个可能对您有帮助的答案:
How to do the Recursive SELECT query in MySQL?
select col1, col2, @pv:=col3 as 'col3' from table1
join
(select @pv:=1)tmp
where col1=@pv
SQL FIDDLE:http://sqlfiddle.com/#!2/9635d2/1
| COL1 | COL2 | COL3 |
----------------------
| 1 | a | 5 |
| 5 | d | 3 |
| 3 | k | 7 |
关于php - mysql:从key等于一个值的表中选择,并选择与该值直接或间接相关的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25150464/