1

次のクエリを使用して、id=2 のグループ レコードに属するすべてのキーワード レコードを最初に取得しています。これはうまくいくようです。

 SELECT k.*, g.groupid, kg.keywordid
  FROM keywords k
  JOIN keywords_groups kg ON k.keywordid=kg.keywordid
  JOIN groups g ON kg.groupid=g.groupid
 ORDER BY kg.groupid = 2 DESC;

ただし、これを DQL に変換しようとしていますが、次のエラーが発生し続けます。

[Syntax Error] line 0, col 198: Error: Expected end of string, got '='

私のDQLの問題のある行は次のようです:

->orderBy($keywordQB->expr()->eq('g.groupid', ':keyword_group_id'), 'ASC')

Doctrineはこれをサポートしていないようで、DQLでこれを行う別の方法は考えられません。

助けに感謝します。

4

1 に答える 1

0

Doctrine はこれをサポートしています。これを試してください

$query = Doctrine_Query::create()
                ->select('k.*, g.groupid, kg.keywordid')
                ->from('keywords k')
                ->innerJoin('keywordsGroups kg ON k.keywordid=kg.keywordid')
                ->innerJoin('Groups g ON kg.groupid=g.groupid')
                ->orderBy('kg.groupid = 2 DESC');
        $result = $query->execute(array(), Doctrine::HYDRATE_ARRAY);
        return $result;
于 2013-09-21T08:23:55.703 に答える