sql - Doctrine 2 JOINエラー

sql join doctrine-orm dql

このクエリを実行しようとしています

    $qb = $this->_em->createQueryBuilder();
    $qb->select(array('c', 'ld'))
            ->from('Model\Entity\Company', 'c')
            ->leftJoin('c.legaldetails', 'ld')
            ->where("c.companyid = 1");

    $query = $qb->getQuery();
    echo($query->getSQL());


最後にこのSQLコードを持っています:

SELECT ... FROM Company c0_ LEFT JOIN WHERE c0_.CompanyID = 1


これらは私のモデルです:

<?php    
namespace Model\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Company
 *
 * @ORM\Table(name="Company")
 * @ORM\Entity(repositoryClass="\Model\Repository\CompanyRepository")
 */
class Company
{
/**
 * @var integer $companyid
 *
 * @ORM\Column(name="CompanyID", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $companyid;

/**
 * @var \Model\Entity\LegalDetails $legaldetails
 *
 * @ORM\OneToOne(targetEntity="\Model\Entity\Legaldetails", mappedBy="companyid")
 */
private $legaldetails;

//other fields

public function __construct()
{
    $this->legaldetails = new ArrayCollection();
}    

//setters and getters


そしてlegaldetailsエンティティ:

<?php
namespace Model\Entity;

use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;

/**
 * Legaldetails
 *
 * @ORM\Table(name="LegalDetails")
 * @ORM\Entity
 */
class Legaldetails
{
/**
 * @var integer $legalid
 *
 * @ORM\Column(name="LegalID", type="integer", nullable=false)
 * @ORM\Id
 * @ORM\GeneratedValue(strategy="IDENTITY")
 */
private $legalid;

/**
 * @var \Model\Entity\Company $company
 *
 * @ORM\Column(name="CompanyID", type="integer", nullable=false)
 * @ORM\OneToOne(targetEntity="\Model\Entity\Company", inversedBy="companyid")
 * @ORM\JoinColumn(name="companyid", referencedColumnName="companyid")
 */
private $company;


なにが問題ですか?

PS:同じ名前(companyid)の2つのフィールドを持つことは悪い習慣であることを理解していますが、それは私のせいではありません
答え
SQL演算子を判断すると、JOIN ONは何ですか?結合演算子の重要な部分を見逃しました。たぶん、ON table.companyid=table2.companyid?テーブルで同じ名前を使用することは有用であり、通常のことであり、悪い習慣ではありません。ここに完全なSQL演算子を置くことができます。 :-)
関連記事

mysql - 2つの列に一意のインデックスを持つテーブルにINSERT INTO

sql - SQL:テーブルのサブセットの物理サイズを取得する

mysql - MySQLはtable1への挿入時にtable2に行を自動挿入します

python - 可変長期間の最大出力を見つける

sql - データベースの行間の日時の違い

php - Oracleストアドプロシージャから配列結果を取得する方法

sql - 中間行を挿入する方法は?

sql - 変更された行を検索(nullを含む複合キー)

php - クエリ結果で関連する(結合された)テーブルのフィールドを並べ替える方法

sql - SQL日付オプション