我有两个MySql表用户和标记
用户表:
+-----------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | firstName | varchar(255) | YES | | NULL | | | lastName | varchar(255) | YES | | NULL | | | email | varchar(55) | YES | | NULL | | +-----------+--------------+------+-----+---------+----------------+
标记表
+--------------+--------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +--------------+--------------+------+-----+---------+----------------+ | id | int | NO | PRI | NULL | auto_increment | | user_id | int | NO | | NULL | | | subject_id | varchar(255) | YES | | NULL | | | score | int | YES | | NULL | | | subject_name | varchar(225) | YES | | NULL | | +--------------+--------------+------+-----+---------+----------------+
我想按降序获取得分最高的前10名用户的详细信息(userid、firstName和lastName)。用户分数定义为用户在不同科目的所有分数之和。
我真的很困惑在这里使用哪个连接,我是MySql新手,这个查询对我来说有点挑战性,希望你理解这个问题。如果你有任何建议,请告诉我,谢谢
您应该将表用户id上的表标记与表标记中的用户id进行内部连接:
SELECT user_id, firstName, lastName
FROM User
INNER JOIN Marks
ON User.id = Marks.user_id
下面是SQL连接的有用资源
您可以通过id=user_id
将两个表连接在一起,然后将结果按id
分组,按每个id
的总标记排序,然后取前10个结果。
如果您想要一个结果,即使user
根本没有标记,将JOIN
更改为LEFT JOIN
,这仍然会给您一个来自第一个表的结果,即使没有来自第二个表的结果...
SELECT u.id, u.firstName, u.lastName, SUM(m.score) AS TotalScore
FROM [User] AS u
JOIN Marks AS m ON m.user_id = u.id
GROUP BY u.id, u.firstName, u.lastName
ORDER BY SUM(m.score) DESC
LIMIT 10;
问题内容: 我想在我的SQL查询中将结果返回为- 我有一个名为employee的表,其列名称,薪水,地址。该查询应返回employee表中的前两个最高列值。 这应该是单个查询。 问题答案: 如果最高的列是,请执行以下操作: 您将对其他任何列执行相同的操作,只需在和部分中替换列名称即可。
问题内容: 我有两个表: 这是表1: 这是表2: 现在,我想从这些表中获取数据。在两个表中都相同。 我想拿 和其他表。 请帮我做到这一点。 问题答案: 我假设您在第二个表中有一个命名字段(您没有列出它): 您应该查看有关的MySQL手册,因为这是编写SQL查询的非常基本的部分。您也可以考虑为product_id字段添加索引,以使查询运行更快。
获取全站粉丝排行 获取财富达人排行 获取全站收入排行 获取全站粉丝排行 根据全站的用户粉丝数进行的排序 GET /ranks/followers 传入参数 名称 类型 必填 说明 limit int - 数据返回条数 默认10条 offset int - 偏移量 默认为0 响应 Http Status 200 Ok [ { "id": 1, "name": "baishi"
获取资讯排行 获取资讯排行 根据一定时间内的资讯获得的浏览量量进行的排序 GET /news/ranks 传入参数 名称 类型 必填 说明 limit int - 数据返回条数 默认10条 type string - 筛选类型 day - 日排行 week - 周排行 month - 月排行 offset int - 偏移量 默认为0 响应 Http Status 200 Ok [ {
获取解答排行 获取问答达人排行 获取社区专家排行 获取解答排行 根据一定时间内发布的回答数进行的排序 GET /question-ranks/answers 传入参数 名称 类型 必填 说明 limit int - 数据返回条数 默认10条 type string - 筛选类型 day - 日排行 week - 周排行 month - 月排行 offset int - 偏移量 默认为0 响应 H
获取动态排行 获取动态排行 根据一定时间内的动态获得的点赞量进行的排序 GET /feeds/ranks 传入参数 名称 类型 必填 说明 limit int - 数据返回条数 默认10条 type string - 筛选类型 day - 日排行 week - 周排行 month - 月排行 offset int - 偏移量 默认为0 响应 Http Status 200 Ok [ {