2012-08-29 216 views
0

如何通過Doctrine ORM獲得具有重複名稱的特定列?如何獲取在Doctrine ORM中重複的特定列?

我正在使用在Zend中製作的自定義引擎進行項目工作。問題是 我得到了2個表中的重複列名(c_naslovi和c_sportovi)

我可以做列重命名嗎?我該怎麼做? 我在學說,SRY新上的n00b問題:)

$q = new Doctrine_RawSql(); 
     $q->select("{p.*}, {n.*}, {np.*}, {sp.*}") 
      ->from("c_ponude p LEFT JOIN c_naslovi n ON p.NaslovID = n.NaslovID 
       LEFT JOIN c_nasloviprijevodi np ON np.NaslovID = n.NaslovID 
       LEFT JOIN c_sportovi sp ON n.SportID = sp.SportID") 
      ->where("p.DatumVrijemeOdigravanja > NOW()") 
      ->andWhere("(p.IndikatorPonude = 'P' OR p.IndikatorPonude = 'H')") 
      ->andWhere("p.KoeficijentZbroj > 0") 
      ->andWhere("p.BrojPonude = ?", array($offerId)) 
      ->orderby("p.RedniBrojRazrade")   
      ->addComponent("p", "cPonude p") 
      ->addComponent("n", "p.cNaslovi n") 
      ->addComponent("np", "n.cNasloviprijevodi np") 
      ->addComponent("sp", "n.cSportovi sp"); 

    $offer = $q->execute(); 
+0

如果我正確理解你的問題,你可以通過添加別名來解決這個問題,但是'Doctrine'使用它自己的別名進行查詢,所以它會自動重命名重複的列。類似於'c_naslovi.duplicate_column as c_0'和'c_sportovi.duplicate_column as s_0' – Sanjay

+0

感謝您的回答...不知道。我發現我也在查詢時出錯。我修復後會查找重複項。 Tnx再次 – Tom

回答

0

如果我正確理解你的問題,你可以通過添加別名解決這個問題,但指導思想是用它爲自己的查詢別名。

所以它會自動重命名重複的列。例如:

c_naslovi.duplicate_column as c_0 
c_sportovi.duplicate_column as s_0 
相關問題