mysql父id循环

时间:2013-04-05 08:11:43

标签: php mysql sql

我有两个Mysql表

participants

id   |   name   | lastname |
-----------------------------
1    |    Jon   |   Bush   |
-----------------------------
2    |  Stephen |   Eagle  |

posts

id    |  parentid |  Title  |   text
--------------------------------------
1     |    1      |  Title1 |  Text1
---------------------------------------
2     |   1       | title3  |  text2
---------------------------------------
3     |      1    | title4  | text4
--------------------------------------
4     |      2    |   title |   ttext

我需要离开桌子

--------------------------
id (1) | Jon   | Title1, title3, title4
------------------------------
id (2) | Stephen | title

我尝试用

执行此操作
$result = mysql_query("SELECT name, Title, participants.id, parent FROM aposts, participants WHERE paricipants.id = parent.parent group by last_name  ORDER BY .......");

但是在这个cas中,我无法获得父母的循环以获取此父母的所有帖子......也许有人可以帮助我....

1 个答案:

答案 0 :(得分:3)

我不确定这是不是你想要的。看到您的示例,您希望为每个TitleID返回以逗号分隔的Name。 MySQL有一个名为GROUP_CONCAT的内置函数,它连接行而不是列。

SELECT  a.ID, a.Name,
        GROUP_CONCAT(b.Title) TitleList
FROM    participants a
        INNER JOIN posts b
            ON a.ID = b.parentID
GROUP   BY  a.ID, a.Name

输出

╔════╦═════════╦══════════════════════╗
║ ID ║  NAME   ║      TITLELIST       ║
╠════╬═════════╬══════════════════════╣
║  1 ║ Jon     ║ Title1,title3,title4 ║
║  2 ║ Stephen ║ title                ║
╚════╩═════════╩══════════════════════╝