简体   繁体   English

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

[英]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.

相关问题 MS SQL:从[表]中选择field1,field2,其中,当field1 =&#39;value2&#39;时,field2 NOT IN(&#39;val1&#39;,val2&#39;) - MS SQL: SELECT field1, field2 from [table] where field2 NOT IN ('val1', val2') when field1 = 'value2' SQL WHERE Field1&gt; = 1或Field2&gt; = 1允许(空)值 - SQL WHERE Field1 >= 1 OR Field2 >= 1 Allowing (null) Values MYSQL仅在field1或field2不等于文本的情况下选择field1,field2 - MYSQL select field1, field2 only where field1 or field2 does not equal text Oracle查询,其中field1 = field2和field2 = field1 - Oracle query where field1=field2 and field2=field1 如果Field1中的值为null,则从Field2中返回值,否则返回String - If value in Field1 is null, return value from Field2, otherwise Return String mysql相关子查询:选择field1,其中max(field2) - mysql correlated subquery : select field1 where max(field2) SQL的最佳实践JOIN如果Field1 IS为NULL,则为Field2 ELSE Field1 - Best practices for SQL JOIN ON IF Field1 IS NULL then Field2 ELSE Field1 Mysql在哪里查询…选择* where field1 + field2 + field3 &lt;=字段4 - Mysql where query… select * where field1 +field2 + field3 <= field 4 (MySQL)OrderBy Field1 = 3,Field2 - (MySQL) OrderBy Field1=3, Field2 复制field2时更新field1 - Update field1 when field2 is duplicated
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM