例如起見構件:doctrine2 - 實體是
我有以下模式:
users(id, name)
groups(id,name)
user_groups(user_id, group_id)
我想獲取屬於某個組的用戶。問題是,我知道組ID,所以我不想加入組表 - user_groups就足夠了。
結果應該是
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
我在doctrine2企圖導致另一加入groups
表。
我得到的最接近的事是:
SELECT u FROM models\User u WHERE ?1 MEMBER OF u.groups
,但它也將LEFT JOIN它裏面的 「WHERE EXISTS(...)」
可以這樣無需本地查詢完成(使用DQL /查詢生成器)?
這完全不正確。這將LEFT JOIN組表,我試圖避免。請閱讀問題 – galchen
抱歉誤會。我會順從一個懂得爲什麼你不想使用你在實體中建立的聯繫的人。祝你好運。 – cantera
我使用的關聯,除了在這種情況下 - 沒有理由左加入組表。可以左加入user_groups只看用戶是否是一個組的成員(因爲我知道該組的ID) – galchen