我有两个的entites
Order
oneToMany:
statuses:
targetEntity: \Status
mappedBy: order
Status
manyToOne:
order:
targetEntity: \Order
inversedBy: status
fields:
code:
type:integer
正如你所看到的 - 一个订单可以有更多的每次一个状态(如“已发货”状态,“已支付等”)。
我想写去找我所有的订单没有6.我发现很难让我的头一轮这样的状态的查询。
假设我有三个订单。 全有“1”(新的)状态,而这些订单之一还具有的“6”(审查)状态。 我只想检索这两个命令不具有的6状态。
写像这样的查询..
$qb->select('o')
->from('MyOrderBundle:Order', 'o')
->innerJoin('o.statuses', 'st')
->where(
$qb->expr()->not(
$qb->expr()->eq('st.code', 6)
)
);
从生成的SQL不包括6的状态行,但仍包括在结果集中的顺序(因为状态行,所述代码=不等于6的1个匹配的条件)。 我需要能够说“排除从我的结果集具有类似的关联{}东西任何实体”。 是否有一个DQL关键字,可以帮助我在这里?
-Cross张贴学说的用户群,如果我找到一个解决方案将更新的答案在这两个地方。