Doctrine DQL查询 - 在外键为null时获取行

ekh*_*led 2 php doctrine dql

我想知道是否有人可以帮助这个Doctrine查询.
基本上,我的查询不返回未设置外键的行或NULL.我想返回所有行.

这是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;
}
Run Code Online (Sandbox Code Playgroud)

类型

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;
}
Run Code Online (Sandbox Code Playgroud)

以及以下DQL查询

SELECT i.id, i.name, t.name as type FROM entity\Items i, entity\Types t WHERE i.type=t.id (OTHER CONDITIONS...)
Run Code Online (Sandbox Code Playgroud)

上面的查询不返回type外键中没有值的行.

是否有可能返回这些行?

先感谢您...

web*_*ave 6

尝试LEFT JOIN:

SELECT i.id, i.name, t.name as type FROM entity\Items i LEFT JOIN i.type t
Run Code Online (Sandbox Code Playgroud)

无论是否存在匹配的类型,这将返回左侧的所有内容(Items).