php - mysql:从key等于一个值的表中选择,并选择与该值直接或间接相关的所有行

标签 php mysql

场景是这样的

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/

相关文章:

php - Laravel 和 Eclipse : How to avoid errors in default code of Laravel 5. 5?

php - PHP 可以上几节课?

php - codeigniter 3 连接到数据库时出错

php - 从 mysql 返回多维 JSON

php在后台执行()函数

php - 如何在wordpress上集成自定义表单和添加/编辑/删除

php - Laravel - 通过关系中的 ID 获取有关用户的信息

mysql - Doctrine 选择包含所有指定值的元素

php - SQL/PHP - 计算结果并根据 HAVING 子句显示它们

php - 按时间戳获取值以查找变化百分比。 mysql