0

DQLクエリに問題があります。userId、userRId、userAIdの3つの外部キーを持つテーブルがあります。それらの外部キーのうちの2つはNULLである可能性があります。

クエリ内のすべての外部キーを結合したいのですが、同じテーブル間で2つまたは3つの外部キーを結合する方法がわかりません。(クエリを参照)誰かが私にいくつかのアイデアを教えてもらえますか?

   **TABLE A**
   id    userId   userRId   userAId
   1     2        NULL      NULL
   1     2         1        NULL
   1     2        NULL         1

**TABLE USER**
userId  name
  2     xxxx
  1     xxxx

The DQL query:

"SELECT FROM nasyBundle:A a JOIN a.userId u , a JOIN userRId , a JOIN userAid
         WHERE ...
4

1 に答える 1

3

DQLでは、(マッピングに基づいて)テーブルではなくオブジェクト(エンティティ)を操作します。したがって、次のようなエンティティがある場合:

class User
{
    private $id;
    private $name;
}

class TableA
{
    private $id;
    private $user;
    private $userR;
    private $userA;
}

このようなクエリを作成できます(有効なマッピングがある場合)

SELECT a
FROM nastyBundle:TableA a
INNER JOIN a.user u
LEFT JOIN a.userR ur
LEFT JOIN a.userA ua

しかし、それを処理するには、マッピング情報が必要です。マッピングがない場合は、doctrine:mapping:importを使用して生成できます。symfonyプロジェクトに入力するだけで詳細を読むことができます。php app/console help doctrine:mapping:import

于 2012-07-15T07:26:07.077 に答える