Doctrine DQL:左连接条件

发布于 2024-11-28 10:15:25 字数 374 浏览 1 评论 0原文

我有一个一对多的模式:桌子上有很多账单。 是否可以获取所有 Desk 记录以及一些 Bill 记录。

我正在尝试这样做:

//DeskTable.class.php

public function getDesks()
{
    $q = $this->createQuery('d')
      ->leftJoin('d.Bills b')
      ->where('b.is_open = ?', true);

    return $q->execute();
}

但是我得到了一份有未结帐单的办公桌列表,而我需要所有办公桌。这可能吗?

我完全不是一个 sql 类型的孩子,所以请耐心等待。

I have a one to many schema: Desk has many Bills.
Is it possible to fetch all Desk records with some Bill records.

I am trying to do this:

//DeskTable.class.php

public function getDesks()
{
    $q = $this->createQuery('d')
      ->leftJoin('d.Bills b')
      ->where('b.is_open = ?', true);

    return $q->execute();
}

But I get a list of Desks that have open Bills, whereas I need all Desks. Is this possible?

I am totally not a sql kind of kid, so please bear with me.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

兔小萌 2024-12-05 10:15:25

使用 Doctrine 的 WITH 关键字 (此处的文档):

$q = $this->createQuery('d')
  ->leftJoin('d.Bills b WITH b.is_open = ?', true)

return $q->execute();

Use Doctrine's WITH keyword (docs here):

$q = $this->createQuery('d')
  ->leftJoin('d.Bills b WITH b.is_open = ?', true)

return $q->execute();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文