Получать статьи и комментарии только одним SQL-запросом? (отношение «один ко многим»)

#sql

#sql

Вопрос:

У меня есть одна таблица с именем «статьи», а другая, связанная с ней, называется «комментарии».

статьи ———— комментарии

Существует ли SQL-запрос для получения всех статей и связанных с ними комментариев?

 articles1
   ------ comment1
   ------ comment2
   ------ comment3
articles2
   ------- comment4
   ------- comment5
  

Спасибо

Комментарии:

1. Если вы хотите, чтобы статьи также возвращались без комментариев, используйте левое внешнее соединение вместо внутреннего соединения. В противном случае.. Приведенный ниже запрос Abe должен соответствовать вашим потребностям

Ответ №1:

Похоже, объединение соответствует вашим потребностям:

 SELECT * FROM Articles as a
INNER JOIN comments as c
ON a.articleId = c.ArticleId
  

Взгляните на эту статью. Это дает лучшее объяснение объединений, которое я видел.

Комментарии:

1. Спасибо! И как я могу выбрать также статьи без комментариев?

Ответ №2:

Вы не смогли опубликовать более подробную информацию о своих таблицах, но вот слепое предположение с моей стороны:

 SELECT articles.*, 
       comments.comment
FROM articles 
   JOIN comments ON comments.article_id = articles.id
  

Ответ №3:

Вот запрос Stackexchange, в котором перечислены записи с комментариями. Вы заметите, что в нем используется LEFT JOIN

 SELECT  top 100 p.id [Post Link], p.id, c.id, c.text from posts p
LEFT JOIN comments c
on p.id = c.postid
  

Это потому, что не гарантируется, что у каждого сообщения будет комментарий