简体   繁体   中英

Mysql: Get all the linked rows in a table

I have a table structure

kinda like this

id  |   title | next 
1   |  test   | 5
2   |  test   | 0
3   |  test   | 0
4   |  test   | 0
5   |  test   | 3

Now, as you see 1 points to next item 5 and 5 points to next item 3 and 3 denotes the end

I need a query, from which I can get 1, 5, 3 serially in one column and their title also

like

result | title
--------------
1      |  test
5      |  test
3      |  test
--------

please help. I dont even know how to get started at such query.

What you want to do here is join the table on itself.

SELECT * FROM `table` AS `child` 
JOIN `table` AS `parent` 
ON `parent`.`next` = `child`.`id`

You need to give both copies of the table their own alias (here: parent and child) because otherwise you will run into uniqueness troubles.

One way would be to create a loop that repeats a simple query.. I could post an example here. Are you using PHP?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM