私は小さな問題があります...私は完璧に動作するSQLのクエリを作成しました。LEFT SQLをDQLに変換する方法LEFT JOIN
この行が別の行に存在し、user_idでグループ化されているかどうかがわかります。
select u.*,
case when m.usuario_id = u.id
then 1
else 0
end as posicionado
from usuario u
left join (select usuario_id from matriz where matriz = 1) as m
on u.id = m.usuario_id group by u.id
しかし、私はDQLを行う変換しようとすると、それはleft join (select
に問題を与える:
これは、現時点では私のクエリです。
SELECT u,
CASE WHEN IDENTITY(m.usuario) = u.id
THEN 1
ELSE 0
END AS posicionado
FROM AppBundle:Usuario u
LEFT JOIN (SELECT IDENTITY (ma.usuario_id) FROM AppBundle:Matriz ma WHERE ma.matriz = 1) as m ON u.id = m.usuario_id group by u.id
それはDoctrineはそのクエリを理解するカント場合のようにseens:
は、ここに私の実際のDQLです。これはエラーです:
[Semantical Error] line 0, col 206 near '(SELECT IDENTITY(ma.usuario_id)': Error: Class '(' is not defined.
誰かがDoctrineでJOINを使用する方法を理解するのを助けることができますか? KNPPaginationBundleで使用する必要があります。また、生のSQLでは動作しません。