Я изучаю объединения MySQL и у меня простой вопрос:
У меня есть одна база данных и две таблицы blogs
и tags
блоги:
MariaDB [cvv]> describe blogs;
+--------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| slug | varchar(255) | YES | | NULL | |
| title | varchar(255) | YES | | NULL | |
| content | text | YES | | NULL | |
| created_at | datetime | YES | | NULL | |
| updated_at | datetime | YES | | NULL | |
| user_id | int(11) | YES | | NULL | |
| is_published | tinyint(1) | YES | | NULL | |
+--------------+--------------+------+-----+---------+----------------+
8 rows in set (0.00 sec)
теги:
MariaDB [cvv]> describe tags;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(15) | YES | | NULL | |
| blog_id | int(11) | YES | MUL | NULL | |
+---------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
В основном я пытаюсь получить блог и его теги, используя:
SELECT blogs.id, blogs.title tags.name as tags FROM blogs INNER JOIN tags ON blogs.id = tags.blog_id
Но этот запрос не возвращает более 1 тега за раз.
например, я создал идентификатор блога, заголовок .. и в теге я создал два тега, и они оба имеют blog_id
из 1, поэтому я должен получить идентификатор блога, озаглавить ДВА тега, ноЯ получаю только один.
Кроме того, я сделал ссылку в tags
таблице с именем ограничения blog_id
, ссылающейся на идентификатор блога, то есть: blog.id