2011-01-19 2 views
0

У меня есть этот запрос (и результаты):Как добавить запрос GROUP_CONCAT в LEFT JOIN?

select articles.article_id, articles.article_text, article_photos.photo_filename 
from 
    articles 
left join article_photos 
on article_photos.article_id=articles.article_id 

>>> results 
1,some_text,photo1.jpg 
1,some_text,photo2.jpg 
1,some_text,photo3.jpg 

Как включить GROUP_CONCAT на это так, что я получаю:

>>> results 

1,some_text,photo1.jpg 
NULL,NULL,photo2.jpg 
NULL,NULL,photo3.jpg 

В принципе, у меня есть таблица со статьями, и связанная с ней таблица с изображений. Статья может иметь несколько изображений, принадлежащих ей, поэтому я пытаюсь напечатать ее на экране внутри цикла while и не хочу, чтобы текст повторялся снова и снова, когда есть несколько изображений.

+0

Вы когда-нибудь попадали в нижнюю часть '# 1630 - FUNCTION mydatabasename.GROUP_CONCAT не существует проблемы? Я получаю тот же результат и не могу понять. – devios1

ответ

1
select articles.article_id, articles.article_text, group_concat(article_photos.photo_filename) 
    from articles 
     left join article_photos 
      on article_photos.article_id=articles.article_id 
    group by articles.article_id, articles.article_text 

вернется

1 some_text photo1.jpg,photo2.jpg,photo3.jpg 

который не совсем то, что вы показали в своих ожидаемых результатов. Это то, о чем вы просите?

+0

Хм, этот запрос работает, но для меня он возвращает тот же результат, что и исходный запрос. – CodeVirtuoso

+0

То, что у меня есть, - это PHP-прохождение этих результатов и печать текста на экране и использование изображений ниже. Итак, когда в статье говорится о 3 связанных с ним изображениях, мой первоначальный запрос приведет к тому, что один и тот же контент будет напечатан 3 раза. – CodeVirtuoso

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