繁体   English   中英

如何获取table1的所有列和table2的所有行属于table1?

[英]How to get all columns of table1 and all rows of table2 which belong to table1?

这是我的表格/实体:

articles
- id
- title
- body

keywords
- id
- fk_article_id
- title

一篇文章可以有多个关键字(一对多关系,不多对多)。 可以属于一个文章的1、2、3、4、5、6、7、8、9 ...个关键字。

为1条文章及其所有关键字的标题选择标题和正文的最佳方法是什么?

结果示例:

- article.title
- article.body
-- keyword1.title
-- keyword2.title
-- keyword3.title

如果我进行内部联接,则两次获得相同的文章标题和正文。 可以使用GROUP BY完成此操作,还是应该使用NESTED语句?

我尝试过的INNER JOIN,但显然不是正确的解决方案:

SELECT articles.title, articles.body, keywords.title
FROM articles
INNER JOIN keywords
ON articles.id = keywords.fk_article_id
WHERE articles.id = 1

例如,假设您有

articles
id   | title | body
----  -----   -----
1    | Harry Potter | text 
2    | LOTR | text text

keywords
id   | title 
----  -----   
1    |  magic
1    |  stick
2    | dwarf
2    | ring

如果执行以下查询

Select a.title,a.body,group_concat(k.title ) from articles a JOIN keywords k ON a.id=k.id group by a.id

它将返回哈利·波特,(魔法,棒)低,(矮人,戒指)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM