2016-02-11 28 views
1

有我的問題,我需要顯示所有沒有關聯客戶端的聯繫人。 我DQL是:因爲我可以找到沒有關聯客戶端的聯繫人嗎?

SELECT c FROM ComercialBundle:Contacto c WHERE c.cliente IS NULL 

我得到了一個錯誤:

A single-valued association path expression to an inverse side is not supported in DQL queries. Use an explicit join instead. 

實體assoc命令:

Contacto.php

/** 
* @ORM\OneToOne(targetEntity="CeiferIT\ComercialBundle\Entity\Cliente", mappedBy="contacto", cascade={"persist", "remove"}) 
**/ 
private $cliente; 

Cliente.php

/** 
    * @ORM\OneToOne(targetEntity="CeiferIT\ComercialBundle\Entity\Contacto", inversedBy="cliente", cascade={"persist", "remove"}) 
    * @ORM\JoinColumn(name="contacto_id", referencedColumnName="id") 
    **/ 
    private $contacto; 

我應該如何創建我的DQL?

謝謝!

+0

請在查詢之前查看文檔和現有問題。 http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/dql-doctrine-query-language.html#joins – chalasr

+0

我已閱讀文檔,但我還沒有找到答案我的問題,所以我打開這個問題,謝謝你的文檔 –

回答

1

我給你的SQL查詢,你很容易就可以做出DQL。

select c.* from Contacto c 
LEFT JOIN Cliente cc on cc.contacto_id = c.id 
where cc.id is null 

希望這對你有所幫助。

+0

哦謝謝,我的查詢如下:'選擇c從ComercialBundle:聯繫c左連接c.cliente CL WHERE cl.id IS NULL'和工作! –

相關問題