SELECT tt.threadid,t.title,tg.tagid,tg.tagtext AS tags
FROM ".TABLE_PREFIX."tag AS tg
LEFT JOIN ".TABLE_PREFIX."tagthread AS tt ON (tg.tagid=tt.tagid)
LEFT JOIN ".TABLE_PREFIX."thread AS t ON (t.threadid=tt.threadid)
WHERE tt.userid =".$db->escape_string($vbulletin->GPC['u'])."
GROUP BY tt.threadid
Но т.к. шла группировка по id темы - соответственно выводилась только одна, первая метка... а надо все... Долго мучала, пыталась с подзапросом сделать, с CONCAT_WS() и вот наткнулась на эту спасительную функцию, которая работает так же как и concat_ws, (которая просто строки объединяет с разделителем), но умеет объединять результаты выборки из таблицыFROM ".TABLE_PREFIX."tag AS tg
LEFT JOIN ".TABLE_PREFIX."tagthread AS tt ON (tg.tagid=tt.tagid)
LEFT JOIN ".TABLE_PREFIX."thread AS t ON (t.threadid=tt.threadid)
WHERE tt.userid =".$db->escape_string($vbulletin->GPC['u'])."
GROUP BY tt.threadid
Добавляем функцию, и ап
SELECT tt.threadid,t.title,tg.tagid,GROUP_CONCAT(tg.tagtext) AS tags
FROM ".TABLE_PREFIX."tag AS tg
LEFT JOIN ".TABLE_PREFIX."tagthread AS tt ON (tg.tagid=tt.tagid)
LEFT JOIN ".TABLE_PREFIX."thread AS t ON (t.threadid=tt.threadid)
WHERE tt.userid =".$db->escape_string($vbulletin->GPC['u'])."
GROUP BY tt.threadid
FROM ".TABLE_PREFIX."tag AS tg
LEFT JOIN ".TABLE_PREFIX."tagthread AS tt ON (tg.tagid=tt.tagid)
LEFT JOIN ".TABLE_PREFIX."thread AS t ON (t.threadid=tt.threadid)
WHERE tt.userid =".$db->escape_string($vbulletin->GPC['u'])."
GROUP BY tt.threadid
Получаем нужный результат
Подробнее об особенностях этой функции можно прочесть например тут http://webi.ru/webi_articles/8_14_f.html