のメンバーである:doctrine2は - エンティティは、例のため
私は、次のスキーマがあります。私は、特定のグループに属するユーザーを取得したい
users(id, name)
groups(id,name)
user_groups(user_id, group_id)
を。問題は、私はグループIDを知っているので、私はグループテーブルに参加したくない - user_groupsで十分です。
結果はdoctrine2で
SELECT * FROM `users` AS u
LEFT JOIN `user_groups` AS ug ON (ug.`user_id` = u.`id)
WHERE ug.`group_id` = X
// i know the value of X
私の試みは、別の結果でなければなりませんgroups
表の結合します。
私が得た最も近いものがある:
SELECT u FROM models\User u WHERE ?1 MEMBER OF u.groups
が、それはまた、「WHERE EXISTS(...)」の内側にそれを左結合します
これはDQLを使用して(ネイティブクエリせずに行うことができます/クエリビルダ)? ここ
これはまったく間違っています。これは、私が避けようとしているgroupsテーブルをLEFT JOINします。質問 – galchen
を読んでください誤解をおかけして申し訳ありません。私はあなたが自分のエンティティで確立した関連付けを使用したくない理由を理解している人に任せます。がんばろう。 – cantera
私は、この場合を除いて、関連付けを使用しています - グループテーブルをLEFT JOINする理由はありません。 1つは、ユーザがグループのメンバーであるかどうかを見るためにuser_groupsをLEFT JOINすることができます(私はグループのIDを知っているので) – galchen