Mysql: как сделать и прочитать объединенный запрос?

0

У меня есть 2 таблицы - одна со статьями и одна со связанными со статьей фотографиями. В каждой статье нет ни одной, ни одной или нескольких связанных с ней фотографий (article_id как внешний ключ)

Запрос, который я использую для извлечения данных:

SELECT articles.article_id, articles.article_text article_photos.photo_filename
FROM articles, article_photos
WHERE article_photos.article_id = articles.article_id

И он возвращает мне все данные + 1 photo_filename.

Вопрос: когда 2 или более фотографий связаны со статьей, как их читать?

Спасибо!

Теги:
join

1 ответ

1
Лучший ответ

Он будет реплицировать ту же строку из articles, но другая строка из article_photos

таких как

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
2,some_text2,NULL       --> no photo related
  • 1
    Обратите внимание, что запрос OP вернет три соединенные записи для статьи 1, именно так (что технически он и просил). Левое объединение, добавленное здесь, указывает на то, что будет пропущено в исходном запросе: статья без фотографий (которую, возможно, пропустил ОП).
  • 0
    @keithjgrant: означает ли это, что моя версия запроса будет просто пропускать статьи без фотографий?
Показать ещё 7 комментариев

Ещё вопросы

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