mysql - 查询返回有关嵌套元素的数据

标签 mysql sql database mariadb

我的数据库中有三个表:

boards: idBoard, nameBoard, author
sections: idSection, nameSection, idBoard
tasks: idTask, nameTask, idSection

我的查询如下所示:

SELECT tasks.idTask, sections.idSection, (more...) 
FROM `tasks` 
    INNER JOIN `boards` ON tasks.idBoard = boards.idBoard 
    INNER JOIN `sections` ON sections.idSection = tasks.idSection 
WHERE boards.idBoard = ? 
AND boards.author= ?

该查询几乎运行良好,但它不会返回没有 tasks 项的 section。 不幸的是,我真的不知道为什么会这样。我还想获得与 boards 匹配的 section 项目,但没有 tasks 项目

最佳答案

我认为您需要外连接,这通常意味着左连接。根据您描述表的方式,我希望查询如下所示:

SELECT t.idTask, s.idSection, (more...) 
FROM boards b LEFT JOIN
     sections s
     ON b.idBoard = s.idBoard 
     tasks t
     ON s.idSection = t.idSection 
WHERE b.idBoard = ?  AND boards.author= ?

关于mysql - 查询返回有关嵌套元素的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57561518/

相关文章:

php - 如何在 Select SQL 报告查询中返回 time() 值

mysql - 我可以用纯 SQL 做到这一点吗?

jquery - 查找MySQL表中重复字段值的数量

sql-server - 从 SQL Server 中删除行会增加数据库大小

database - 次线性时间内二次查找的数据结构或算法?

c# - 根据数据库查找表中的值自动创建枚举?

php - MySQL连接三张表,如果为空则显示0

php - 预测/纠正全文搜索

mysql - 如何优化这个复杂的查询?

mysql - 带有 INNER JOIN 和子查询的 WHERE 子句