首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我如何使用一个连接表并使用它引用另一个表?

我如何使用一个连接表并使用它引用另一个表?
EN

Stack Overflow用户
提问于 2022-01-25 19:58:51
回答 2查看 37关注 0票数 0

我刚刚开始学习SQL,需要帮助解决一个赋值问题。我被要求查看关于Kickstarter活动的数据集。我被要求找到前3类的支持者数量。

这是ER图:

ER图

在“竞选”表中,有“支持者”栏,但“类别”表仅通过“子类别”表与竞选活动相关。

到目前为止,我已经能够加入sub_category.category_idsub-category.category_name,但我不知道如何使用这张新桌子,并加入它的竞选

代码语言:javascript
运行
复制
SELECT C.name AS category_name, SC.category_id, SC.id AS SC_id
FROM Category AS C
JOIN sub_category AS SC ON C.id = SC.category_id

屏幕截图

我希望有一个表,其中有一个列“类别名称”和“支持者”,然后简单地按支持者的数量排序。

我该怎么做?我在正确的轨道上吗?

EN

回答 2

Stack Overflow用户

发布于 2022-01-25 21:38:59

代码语言:javascript
运行
复制
SELECT C.name AS category_name, CA.backers
FROM campaign AS CA
JOIN sub_category AS SC
ON CA.sub_category_id =SC.Id
JOIN Category AS C 
ON C.id = SC.category_id
order by CA.backers

您可以在一个查询中将多个连接放在一起。

其次,活动表和Sub_Category表之间有一个连接,这将有助于连接这两个表。

稍后,我们可以加入类别表,因为这两个表之间有一个基于Category_Id的连接,后者是子类别表中的外键。

最后,你可以根据支持者来订购。如果你在评论中有任何问题或疑问,请告诉我。

票数 2
EN

Stack Overflow用户

发布于 2022-01-25 22:29:10

为了获得Magnus的答案并可视化地重写,您可以更好地看到查询的层次结构。看看它是如何与表关系非常相似的。

代码语言:javascript
运行
复制
SELECT 
      C.name category_name, 
      CA.backers
   FROM 
      campaign CA
         JOIN sub_category SC
            ON CA.sub_category_id = SC.Id
            JOIN Category C 
               ON SC.category_id = C.id
   order by 
      CA.backers

注意表的缩进,它的ID是基于它之前的缩进。这样您就可以知道从连接到哪一列。我已经发现,如果您首先列出FROM子句中的表,以显示表是如何关联的,以及表中的主要键关系是什么,这是最困难的部分。然后再拉下你想要的柱子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70854941

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档