浏览代码

sql homework: tags and many-to-many

me@helium 8 年之前
父节点
当前提交
e8f6be7046
共有 1 个文件被更改,包括 29 次插入0 次删除
  1. 29 0
      SQLHomeWork.md

+ 29 - 0
SQLHomeWork.md

@@ -86,3 +86,32 @@ CREATE TABLE `comment` (
    - Выведите все посты, самый старый и самый свежий комментарий, используя агрегирующие функции `MAX` и `MIN` по полю `comment_datetime`
 
 ### Таблица `tag`
+
+```mysql
+CREATE TABLE `tag` (
+    tag_id SERIAL,
+    tag_title VARCHAR(128)
+)
+```
+
+#### Задание
+
+Добавьте разных тэгов.
+
+### Таблица `post_to_tag`
+Эта таблица предназначена для организации связи тэга и поста:
+
+```mysql
+CREATE TABLE post_to_tag(
+    post_to_tag_id SERIAL,
+    post_id BIGINT,
+    tag_id BIGINT
+);
+```
+
+#### Задание
+1. Добавьте записи (связи) используя существующие `post_id` и `tag_id`
+2. Выведите все тэги каждого поста используя `LEFT JOIN` от таблицы `post` к таблице `tag` через смежную таблицу `post_to_tag`
+3. Используя `GROUP BY` подсчитайте количество тэгов у всех постов в колонке под именем `tagsCount`. Используйте `AS` для задания псевдонимов.
+4. Используя `GROUP BY` выведите все тэги у всех постов в поле `tagsList`. Используйте `GROUP_CONCAT` для объединения тэгов в одну строку.
+