SQL:如何使用另一个表中的信息来选择一些信息

问题描述:

我有两个SQL表。SQL:如何使用另一个表中的信息来选择一些信息

在第一个表中,每一行具有(在其他领域不相关的问题)一个scorecategory_id字段

第二个表(categories)是列出所有可能的类别的表,该表的第一个表中的元素可以属于。

我想要做下面的SQL请求:

SELECT category_name, (???) AS category_score 
FROM categories 
ORDER BY category_score DESC 

其中??? = the sum of the scores of all the elements in table 1 that belong to the category

你可以joingroup by

SELECT category_name, SUM(score) AS category_score 
FROM  categories c 
JOIN  element e ON c.category_id = e.category_id 
GROUP BY category_name 
ORDER BY 2 DESC 
+0

感谢您的回答,我不知道'组by',我会考虑它。只是一个简单的问题,但我没有看到'ORDER BY 2 DESC'部分?为什么不是'GROUP BY category_score DESC'例如? –

+0

@Malimalo'group by'子句将结果分解为组,因此集合函数(如'sum')可以独立应用于'category_name'的每个唯一值。一旦完成,结果仍然需要排序,这是通过'order by'子句完成的。 – Mureinik

+0

谢谢你的回答,它实际上是'order by'中的'2',我没有得到。但是,我在提问之前做了我应该做的事情,搜索了它并得到了我的答案(这意味着“选择线的第二个元素的顺序”)非常快。感谢您的帮助 ;) –