在Doctrine2中JOIN ON和JOIN WITH有什么区别?

Tre*_*ent 7 sql join dql doctrine-orm

在Doctrine2中JOIN ON和JOIN WITH有什么区别?

我在手册中找不到任何相关信息.

the*_*led 11

ON替换原始连接条件,
WITH为其添加条件.


示例:

[Album] ---OneToMany---> [Track]
Run Code Online (Sandbox Code Playgroud)
  1. 案例一

    DQL

    FROM Album a LEFT JOIN a.Track t WITH t.status = 1
    
    Run Code Online (Sandbox Code Playgroud)

    将在SQL中翻译

    FROM Album a LEFT JOIN Track t ON t.album_id = a.id AND t.status = 1
    
    Run Code Online (Sandbox Code Playgroud)
  2. 案例二

    DQL

    FROM Album a LEFT JOIN a.Track t ON t.status = 1
    
    Run Code Online (Sandbox Code Playgroud)

    将在SQL中翻译

    FROM Album a LEFT JOIN Track t ON t.status = 1
    
    Run Code Online (Sandbox Code Playgroud)