Doctrine2中JOIN ON和JOIN WITH有什么区别?
我在手册中找不到相关信息。
Doctrine2中JOIN ON和JOIN WITH有什么区别?
我在手册中找不到相关信息。
ON
用于替换原始的连接条件,
WITH
添加条件到原始连接条件。
示例:
[Album] ---OneToMany---> [Track]
Case One
DQL
FROM Album a LEFT JOIN a.Track t WITH t.status = 1
Will translate in SQL
FROM Album a LEFT JOIN Track t ON t.album_id = a.id AND t.status = 1
Case Two
DQL
FROM Album a LEFT JOIN a.Track t ON t.status = 1
Will translate in SQL
FROM Album a LEFT JOIN Track t ON t.status = 1
FROM Album a LEFT JOIN a.Track t WITH t.status = 1
,它相当于SQLFROM Album a LEFT JOIN Track t ON t.album_id = a.id AND t.status = 1
但是,如果您执行FROM Album a LEFT JOIN a.Track t ON t.status = 1
,它将相当于SQLFROM Album a LEFT JOIN Track t ON t.status = 1
,从而替换关系条件(t.album_id = a.id
)。希望我表达清楚! - theredledJoin::ON
来设置自己的连接条件,并且你可以使用Join::WITH
来使用实体模型中设置的条件作为起点,然后仅添加额外的子句。至少对我来说,无论如何,在Symfony中Join::ON
都无法工作。 - undefined