Mysql 在本例中如何使用内部联接
我正在学习mysql连接,我有一个简单的问题: 我有一个数据库和两个表Mysql 在本例中如何使用内部联接,mysql,sql,join,Mysql,Sql,Join,我正在学习mysql连接,我有一个简单的问题: 我有一个数据库和两个表blogs和tags 博客: MariaDB [cvv]> describe blogs; +--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+------
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)
标签:
基本上,我尝试使用以下方法获取博客及其标签:
SELECT blogs.id, blogs.title tags.name as tags FROM blogs INNER JOIN tags ON blogs.id = tags.blog_id
但此查询一次返回的标记不超过1个
例如,我创建了一个博客id,title。。在标签中,我创建了两个标签,它们的blog\u id
都是1,所以我应该得到blog id,title和两个标签,但我只得到一个
另外,我在标签表中引用了约束名称blog\u id
引用blog的id,即:blog.id
此查询:
SELECT b.id, b.title, t.name as tags
FROM blogs b INNER JOIN
tags t
ON b.id = t.blog_id ;
应该返回多行,每行一个blog/标记对
如果希望博客的所有标记位于同一行,则需要聚合结果:
SELECT b.id, b.title, GROUP_CONCAT(t.name) as tags
FROM blogs b INNER JOIN
tags t
ON b.id = t.blog_id
GROUP BY b.id, b.title;
此查询:
SELECT b.id, b.title, t.name as tags
FROM blogs b INNER JOIN
tags t
ON b.id = t.blog_id ;
应该返回多行,每行一个blog/标记对
如果希望博客的所有标记位于同一行,则需要聚合结果:
SELECT b.id, b.title, GROUP_CONCAT(t.name) as tags
FROM blogs b INNER JOIN
tags t
ON b.id = t.blog_id
GROUP BY b.id, b.title;
@戈登·林诺夫是正确的;必须将合并的数据合并到一列中。SQL非常强大,但它不容易处理不均匀的行。@gordon linoff是正确的;必须将合并的数据合并到一列中。SQL非常强大,但它不容易处理不均匀的行。我喜欢第二个示例,但是我可以得到带有/不一致的标记吗?我是说,只是分开排列?@hidar。MySQL中没有数组这样的东西。我喜欢第二个例子,但是我可以得到带有/out concatation的标签吗?我是说,只是分开排列?@hidar。MySQL中没有数组这样的东西。