Bläddra i källkod

sql homework: tags and many-to-many

me@helium 8 år sedan
förälder
incheckning
e8f6be7046
1 ändrade filer med 29 tillägg och 0 borttagningar
  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` для объединения тэгов в одну строку.
+