2014-11-06 3 views
1

Я присоединился к двум столам. с этим запросом, показывающий результат объединения в специальном формате

Select P.P_id,p.P_title,p.P_text,p.P_date,tag.tag_name from p inner join tag.tag_name on p.P_id=tag.tag_pid where P.P_id=8 

Результат таблицы выглядит так:

P_id | P_title | P_text | P_date |tag_name 

8  | title | text  | date  | Tag1 

8  | title | text  | date  | Tag2 

8  | title | text  | date  | Tag3 

9  | title2 | text2  | date2  | Tag4 

9  | title2 | text2  | date2  | Tag5 

9  | title2 | text2  | date2  | Tag1 

Мне нравится показывать этот результат с этим форматом в HTML с помощью PHP:

title | text | date | Tag1,Tag2,Tag3 

title2 | text2 | date2 | Tag4,Tag5,Tag1 
+0

Вы хотите объединить результаты вместе? –

+0

есть. Мне нужен групповой результат вместе! – yafater

ответ

2

Используйте GROUP_CONCAT, то вы не нужно делать что-либо на стороне PHP. Вы можете использовать только $results['all_tags'], и они уже будут разделены запятыми.

SELECT P.P_id, 
     p.P_title, 
     p.P_text, 
     p.P_date, 
     GROUP_CONCAT(tag.tag_name SEPARATOR ",") AS all_tags 
FROM p 
INNER JOIN tag.tag_name ON p.P_id=tag.tag_pid 
WHERE P.P_id=8 
+0

Добро пожаловать @shoara –

+0

привет мой вопрос редактируется. по GROUP_CONCAT работает неправильно. – yafater