【问题标题】:Which join for 1: Many relationship?哪个加入为 1:多关系?
【发布时间】:2011-08-01 16:09:33
【问题描述】:

这是我的数据库架构和我尝试链接的表,我尝试使用 LEFT 连接,但现在它正在为每个匹配的行创建一个新结果。

http://i.imgur.com/Ovsau.png

我目前正在构建我的查询,现在尝试将这些表连接在一起(Procedure-> Procedure_event -> Resources -> Med_item)

在这样的场景中:

例如过程 X 有 3 行 procedure_events

我希望在一条记录中返回给我的数据,但包含构成该记录的所有行。

但是它返回 3 行结果,如下所示:

  • 过程 X - 过程事件第 1 行
  • 程序 X - procedure_event 第 2 行
  • 程序 X - procedure_event 第 3 行

所以查询结果应该是Procedure X - procedureevent rows 1,2,3

这是我在 Codeigniter PHP 框架中使用 Active Record 的代码:

$this->db->join('procedure_event', 'procedure.procedure_id = procedure_event.procedure_id' , 'left');

谢谢

【问题讨论】:

    标签: php mysql codeigniter join


    【解决方案1】:

    这就是 LEFT JOIN 的工作原理。

    所以查询结果应该是Procedure X - procedureevent rows 1,2,3

    我认为你需要这个:How do I get a count of associated rows in a left join in MySQL?

    MySQL 无法返回二维数组或合并行。如果您需要所有“procedureevent rows 1,2,3”,那么只需像往常一样遍历结果集并添加一个小 + 图标,该图标可以使用 AJAX 获取procedureevents。

    【讨论】:

    • 我想我要做的是两个单独的查询并将它们的结果合并到一个数组中
    猜你喜欢
    • 2017-05-11
    • 2018-03-31
    • 1970-01-01
    • 2013-12-31
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 2013-06-17
    • 2023-03-03
    相关资源
    最近更新 更多