mysql - 获取最新的行并将其与另一个表链接?

标签 mysql sql

我正在尝试获取表格的最新行

user_quiz:
+--------+-----------+-------------+-------------------+------------+
|quiz_id |userid     | module_id   |number_of_questions| user_score |     
+--------+-----------+-------------+-------------------+-------- ---+
|    1   |  1        |      1      |        5          |     5      |
|    2   |  2        |      2      |        10         |     9      |
|    3   |  1        |      1      |        10         |     9      |
+--------+-----------+-------------+-------------------+------------+

我使用了查询:

SELECT * FROM user_quiz WHERE userid = 1 ORDER BY quiz_id DESC LIMIT 1

正确检索最后一行。 但是我想将 module_id 与另一个表链接:

    module:
    +---------+------------+
    |module_id|module_name |    
    +---------+------------+
    |    1    |  Forces    | 
    |    2    | Electricity|   
    +---------+------------+

并检索模块名称。

查询结果将用于打印出用户最近的测验:

Most recent quiz: Forces - Number of questions: 10 - User Score: 9

仅使用一个查询就可以实现这一点吗?

最佳答案

您只需要一个JOIN:

SELECT uq.*, m.module_name
FROM user_quiz uq JOIN
     modules m
     ON uq.module_id = m.module_id
WHERE uq.userid = 1
ORDER BY uq.quiz_id DESC
LIMIT 1;

关于mysql - 获取最新的行并将其与另一个表链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49220090/

相关文章:

php - 如何从 php 和 mysql 数据库创建图表和最终用户前端导航

sql - 在 RDB 模式中,什么时候将列组合成单个分隔列会更好?

sql - SQL 关键字 "ISABOUT"[已弃用?] 应该替换为什么?

php - 如何使用 AS 别名执行复杂查询

php - 允许查看个人资料页面(所有人)

mysql - 无法将 myisam sql 添加到服务器 5.5 中

mysql - 如何使用 LIKE 在 MySQL 中以没有特定顺序的所有可能选项搜索 5 个不同的字段

sql - 过滤多对多 (PostgreSQL)

sql - 如何在 postgres 中强制执行单向唯一性?

用于计数的mysql case语句