SQL(DQL):WHERE值IN(数组field1)或field2 = value

时间:2015-04-03 12:41:28

标签: sql sql-server symfony dql

我正在使用Symfony 2.我有实体 Ent1 ,Field1 = ManyToMany(targetEntity = Ent2),Field2 = OneToOne(targetEntity = Ent2)。

ManyToMany涉及DataBase中的中间表。

我的请求参数是Ent2的实例(在DQL中,这意味着SQL的Ent2的Id)' myEnt ',我需要选择所有具有' myEnt 的实体em>'IN(Field1数组)或具有Field2 =' myEnt '。

在伪SQL中,它将是

SELECT(*) FROM Ent1 
(WHERE Field2='myEnt' OR INNERJOIN(Ent2 ON Ent2 = 'myEnt')

当然不是功能性的。

有可能吗? 如果是,那么某人是否有正确的逻辑/语法来达到这个目标?

非常感谢。

1 个答案:

答案 0 :(得分:0)

保留连接部分以选择要加入的行以及要过滤的位置,这样您可能需要这样的内容:

SELECT(*) FROM Ent1 
inner join ent2
on ent1.id = ent2.id 
 WHERE Field2='value' OR  Field2.id = 'value'