Kaynağa Gözat

sql homework: comments

me@helium 8 yıl önce
ebeveyn
işleme
12d3ddbfec
1 değiştirilmiş dosya ile 28 ekleme ve 1 silme
  1. 28 1
      SQLHomeWork.md

+ 28 - 1
SQLHomeWork.md

@@ -52,10 +52,37 @@ INSERT INTO post SET
     post_create_datetime = NOW();
 ```
 
-поля `post_id` и `post_update_datetime` заполнятся автоматически;
+поля `post_id` и `post_create_datetime` заполнятся автоматически;
 
 #### Задание
 
 Добавьте несколько записей с осмысленными названиями и текстом.
 
+### Таблица `comment`
 
+```mysql
+CREATE TABLE `comment` (
+     `comment_id` SERIAL,
+     `post_id` bigint(20) DEFAULT NULL,
+     `comment_parent_id` bigint(20) DEFAULT NULL,
+     `comment_username` varchar(255) DEFAULT NULL,
+     `comment_text` text,
+     `comment_datetime` TIMESTAMP
+);
+```
+
+#### Задание
+1. Добавьте несколько комментариев к вашим постам, установите связь (занесите в `comment.post_id` `post_id` из тех или иных постов). Так же добавьте
+   ответные комментарии к комментариям, т. е. задайте `comment_parent_id`. Оставьте один пост *без* комментариев для понимания различий между 
+   `INNER JOIN` и `LEFT JOIN`
+2. Сделайте запросы выборки:
+   - Всех комментов к посту с `post_id` = 2
+   - Запрос, используя `INNER JOIN` или `WHERE` из таблицы постов и комментов, используя `USING(post_id)` или `ON (post.post_id = comment.post_id)`
+      Отметьте для себя отсутствие поста без комментов в выборке.
+   - Запрос, используя `LEFT JOIN`, который выведет все посты, включая тот, у которого нет комментов.
+   - Сделайте запрос, который выбирает посты, их комменты и их подкомментарии, используя `AS` и `comment_parent_id`
+3. Сделайте запросы выборки и группировки:
+   - Выведите все посты и количество комментариев к ним, используя `GROUP BY` и `count(comment.comment_id)`.
+   - Выведите все посты, самый старый и самый свежий комментарий, используя агрегирующие функции `MAX` и `MIN` по полю `comment_datetime`
+
+### Таблица `tag`