誰かがこのDoctrineクエリを手助けできるのだろうかと思います。
基本的に、私のクエリは、外部キーが設定されていない行、またはNULL
を返しません。そして、私はすべての行を返したいと思います。Doctrine DQLクエリ - 外部キーがヌルのときに行を取得する
はここ2つのスキーマです
アイテム
class Items{
/**
* @var integer $id
*
* @Column(name="id", type="integer", nullable=false)
* @Id
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $name
*
* @Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
/**
* @var integer $type
*
* @ManyToOne(targetEntity="Types")
*
*/
private $type;
}
タイプ
class Types{
/**
* @var integer $id
*
* @Column(name="id", type="integer", nullable=false)
* @Id
* @GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string $name
*
* @Column(name="name", type="string", length=255, nullable=false)
*/
private $name;
}
そして、次のDQLクエリ
SELECT i.id, i.name, t.name as type FROM entity\Items i, entity\Types t WHERE i.type=t.id (OTHER CONDITIONS...)
上記のクエリは、type
の外部キーに値を持たない行を返しません。
これらの行を返すことはできますか?
キープエラー '取得:パス式に参加で使用されるが、識別変数の実体\\種類が – ekhaled
何についてbefore.'定義されていませんでした' LEFT JOIN i.type t' – webbiedave
これはうまくいきました...ありがとうございました... – ekhaled