我的数据库中有三个表:

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= ?


该查询几乎可以正常工作,但不会返回没有sections项目的tasks
不幸的是,我真的不知道为什么会这样。我也想获得与section匹配但没有boards项的tasks个项

最佳答案

我认为您需要外部联接,通常表示left join。根据您描述表的方式,我希望查询看起来像这样:

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/

10-13 02:48