Sql 超类的WHERE语句中的Subclass属性
我在symfony2项目数据库中的一些表中使用。我有一些超类外键的关系表 现在,我想编写一个从关系表开始并加入超类的查询。如果我想将记录过滤到子类,我只需要写以下内容:Sql 超类的WHERE语句中的Subclass属性,sql,symfony,doctrine-orm,dql,symfony-2.1,Sql,Symfony,Doctrine Orm,Dql,Symfony 2.1,我在symfony2项目数据库中的一些表中使用。我有一些超类外键的关系表 现在,我想编写一个从关系表开始并加入超类的查询。如果我想将记录过滤到子类,我只需要写以下内容: SELECT r, c FROM BasicBundle:RelationEntity r JOIN r.superclassId c WHERE c INSTANCE OF BasicBundle:Subclass 我的问题是,我还想设置一个WHERE子句,其属性为子类,如下所示: WHERE c INSTANCE OF B
SELECT r, c
FROM
BasicBundle:RelationEntity r
JOIN r.superclassId c
WHERE
c INSTANCE OF BasicBundle:Subclass
我的问题是,我还想设置一个WHERE子句,其属性为子类,如下所示:
WHERE
c INSTANCE OF BasicBundle:Subclass
AND
c.subclassAttribute LIKE %example%
这不管用。我做了一些研究并发现,但每次我试图在查询中使用“CAST”时,都会出现错误。因此,似乎该演员阵容不可用
有人知道如何在超类查询的WHERE语句中使用子类属性吗?为什么不尝试使用子查询 例如:
也许我在实例上做错了什么,但老实说,你没有提供一个非常详细的例子。你刚刚救了我一命!谢谢。
WHERE
c INSTANCE OF BasicBundle:Subclass
AND EXISTS
(SELECT x FROM BasicBundle:Subclass s
WHERE s.id = c.id AND s.subclassAttribute LIKE %example%)