首頁 > 後端開發 > php教程 > 如何在 Doctrine 中執行左連接:帶有程式碼範例的指南

如何在 Doctrine 中執行左連接:帶有程式碼範例的指南

Mary-Kate Olsen
發布: 2024-10-30 05:02:02
原創
436 人瀏覽過

How to Perform Left Joins in Doctrine: A Guide with Code Examples

在 Doctrine 中執行左連接

Doctrine 提供了創建和執行 SQL 查詢的全面功能,包括執行左連接的功能。本文示範如何使用 Doctrine 執行左連接,解決您在程式碼中可能遇到的痛點。

左連接語法

在利用實體之間的關聯時,左連接的語法很簡單:

<code class="php">public function getHistory($users) {
    $qb = $this->entityManager->createQueryBuilder();
    $qb
        ->select('a', 'u')
        ->from('Credit\Entity\UserCreditHistory', 'a')
        ->leftJoin('a.user', 'u')
        ->where('u = :user')
        ->setParameter('user', $users)
        ->orderBy('a.created_at', 'DESC');

    return $qb->getQuery()->getResult();
}</code>
登入後複製

在此範例中,條件應用於連接結果,因此無論使用左連接還是簡單連接都無關緊要。

沒有關聯的左連接

如果沒有可用的關聯,則左連接查詢類似於以下內容:

<code class="php">public function getHistory($users) {
    $qb = $this->entityManager->createQueryBuilder();
    $qb
        ->select('a', 'u')
        ->from('Credit\Entity\UserCreditHistory', 'a')
        ->leftJoin(
            'User\Entity\User',
            'u',
            \Doctrine\ORM\Query\Expr\Join::WITH,
            'a.user = u.id'
        )
        ->where('u = :user')
        ->setParameter('user', $users)
        ->orderBy('a.created_at', 'DESC');

    return $qb->getQuery()->getResult();
}</code>
登入後複製

此查詢會產生類似以下內容的陣列:

<code class="php">array(
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    array(
        0 => UserCreditHistory instance,
        1 => Userinstance,
    ),
    // ...
)</code>
登入後複製

以上是如何在 Doctrine 中執行左連接:帶有程式碼範例的指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板