2013-04-05 2 views
2

Я heve две таблицы MysqlMySQL петля Идентификатор родительского

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 ......."); 

Но в этом случае я не могу получить петлю на родительском, чтобы получить все сообщения этого родителя ... Может быть, кто-то может мне помочь ....

ответ

3

Я не уверен, что это именно то, что вы хотите. Увидев ваш пример, вы хотите вернуть Title через запятую для каждого ID и 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    ║ 
╚════╩═════════╩══════════════════════╝ 
+0

Спасибо !! Это работает! : D – Arvix

+0

приветствуется ': D' Добро пожаловать в переполнение стека! –

+0

OK :) Спасибо onemore time :) – Arvix

Смежные вопросы