[英]SQL (DQL): WHERE value IN (array field1) OR field2 = value
I'm using Symfony 2. I have Entity Ent1 with Field1 = ManyToMany(targetEntity=Ent2), and Field2 = OneToOne(targetEntity=Ent2). 我正在使用Symfony2 。我有实体Ent1,其中Field1 = ManyToMany(targetEntity = Ent2),而Field2 = OneToOne(targetEntity = Ent2)。
ManyToMany involves an intermediate table in DataBase. ManyToMany涉及数据库中的中间表。
My request parameter is an instance of Ent2 (in DQL, which means an Id of Ent2 for SQL) ' myEnt ', I need to select all Ent1 entities having ' myEnt ' IN (Field1 array) OR having Field2 = ' myEnt '. 我的请求参数是Ent2的实例(在DQL中,这表示SQL的Ent2的ID)“ myEnt ”,我需要选择所有具有“ myEnt ” IN(Field 1数组)或具有Field 2 =“ myEnt ”的Ent1实体 。
In pseudo-SQL it would be 在伪SQL中,它将是
SELECT(*) FROM Ent1
(WHERE Field2='myEnt' OR INNERJOIN(Ent2 ON Ent2 = 'myEnt')
which is not functionnal, of course. 当然,这不是功能性的。
Is it possible? 可能吗? If it is, do someone have the correct logic/syntax to reach that?
如果是,那么有人是否具有正确的逻辑/语法来达到目标?
Thank you very much. 非常感谢你。
Leave the join part to select the rows to join on and the where to filter so you may need something like this: 保留联接部分以选择要联接的行以及要过滤的位置,因此您可能需要类似以下内容:
SELECT(*) FROM Ent1
inner join ent2
on ent1.id = ent2.id
WHERE Field2='value' OR Field2.id = 'value'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.