有一個「聯繫人」列表。一些「聯繫人」是父母,一些是孩子。有些聯繫人不止一個孩子。有些孩子有更多的一個家長。 聯繫人可以是父母和孩子(大孩子)。MySql組由同一張表?
聯繫人之間的關係映射在表「parents_and_children」中。
"contacts" table
+----+------+
| id | name |
+----+------+
| 1 | p1 |
| 2 | p2 |
| 3 | p3 |
| 4 | p4 |
| 5 | p5 |
| 6 | p6 |
+----+------+
"parents_and_children" table
+----+-----------+----------+
| id | parent_id | child_id |
+----+-----------+----------+
| 1 | 1 | 2 |
| 2 | 1 | 3 |
| 3 | 3 | 4 |
| 4 | 5 | 2 |
| 5 | 5 | 3 |
| 6 | 5 | 6 |
+----+-----------+----------+
的查詢應該是結果:
+-------------------+------------------+
| parent(s) name(s) | children name(s) |
+-------------------+------------------+
| p1, p5 | p2, p3 |
| p3 | p4 |
| p5 | p6 |
+-------------------+------------------+
注意,P3是P1和P5,也是一個家長到P4的孩子。 p5是p2和p3的父親,p1和p6是他自己的。
我不需要完整的解決方案。請告訴我方向,我會自己到達那裏。迄今爲止,沒有任何工作。
MySQL沒有遞歸的原生支持...這就是爲什麼這個問題被廣泛討論 – Strawberry