Как добавить GROUP_CONCAT в запрос LEFT JOIN?

0

У меня есть этот запрос (и результаты):

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 does not exist до сути #1630 - FUNCTION mydatabasename.GROUP_CONCAT does not exist проблемы? Я получаю точно такой же результат и не могу понять это.
Теги:
join
group-by
group-concat

1 ответ

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
    Хм, этот запрос работает, но мне он возвращает тот же результат, что и оригинальный запрос.
  • 0
    У меня есть php, который просматривает эти результаты и печатает текст на экране, а также принадлежащие изображения ниже. Таким образом, когда статья содержит 3 изображения, связанные с ней, мой исходный запрос приведет к тому, что один и тот же контент будет напечатан 3 раза.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню