如何將這個sql寫入原則查詢語言(DQL)?sql to doctrine查詢語言
SELECT *
FROM service
WHERE service.id NOT IN (SELECT id_service FROM reclamation)
謝謝。
如何將這個sql寫入原則查詢語言(DQL)?sql to doctrine查詢語言
SELECT *
FROM service
WHERE service.id NOT IN (SELECT id_service FROM reclamation)
謝謝。
嘗試使用不存在:
SELECT *
FROM service
WHERE NOT Exists (SELECT 1 FROM reclamation WHERE id_service = service.id)
嘗試這樣做,
$em = $this->getDoctrine()->getManager();
$query = $em->createQuery(
'SELECT s
FROM YourBundle:Service s
WHERE s.id NOT IN
(SELECT s.idService FROM YourBundle:Reclamation r)'
)->getResult();
如果值得,你可以使用舊學校的方式! native-sql-with-docrtine
[語義錯誤] line 0,col 122'idService FROM'附近:錯誤:PathExpression無效。必須是StateFieldPathExpression。 –
我認爲你應該檢查你的語法 –
看到鏈接http://doctrine.readthedocs.org/en/latest/en/manual/dql-doctrine-query-language.html#subqueries
$q = Doctrine_Query::create()
->select('s')
->from('Service s')
->where('s.id NOT IN (SELECT id_service FROM reclamation)
->getQuery()
->getResult();
你可以找到[點擊這裏查詢示例](http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/dql- doctrine-query-language.html#dql-select-examples) –