首先,對不起英語不好!SQL to QueryBuilder
我嘗試轉換這個SQL(它的操作):
SELECT DISTINCT U.id
FROM User U
INNER JOIN Detail DE on U.id = DE.id_user
INNER JOIN matiere MA on U.id = MA.id_user
WHERE DE.ville = $var1
AND MA.matiere = $var2
查詢生成器。 我試試這個:
$query = $repository->createQuerybuilder('U.id')
->from('User', 'U')
->innerJoin('Detail', 'DE', 'WITH', ' U.id = DE.id_user')
->innerJoin('matiere', 'MA', 'WITH', 'U.id = MA.id_user')
->where('DE.ville = :ville')
->setParameter('ville', $ville)
->andWhere('MA.matiere = :matiere')
->setParameter('matiere', $matiere)
->distinct();
但我有此錯誤: 「[語法錯誤] 0行,列49:錯誤:字符串應爲結束,得到了 '' 「
當我試試這個:
$query = $repository->createQueryBuilder()
->select('U.id')
->from('User', 'U')
->innerJoin('Detail', 'DE', 'WITH', ' U.id = DE.id_user')
->innerJoin('matiere', 'MA', 'WITH', 'U.id = MA.id_user')
->where('DE.ville = :ville')
->setParameter('ville', $ville)
->andWhere('MA.matiere = :matiere')
->setParameter('matiere', $matiere)
->distinct();
我有這樣的錯誤:
Warning: Missing argument 1 for Doctrine\ORM\EntityRepository::createQueryBuilder(),
我教義和symfony3工作。
感謝您的幫助。
我試試你的解決方案,該錯誤是一樣的(警告:缺少參數1教義\ ORM \ EntityRepository :: createQueryBuilder()) 我已經嘗試刪除‘選擇(U.id’)和把'createQuerybuilder('U.id');' ('[Syntax Error] line 0,col 49:Error:Expected end of string,got'。'') 我不明白問題出在哪裏... – jomalix
你做過調試嗎?知道變量中的SQL查詢如何, 似乎是在執行 SQL查詢時提示語法錯誤,錯誤[預期的字符串結束,得到。''],似乎是詞法分析器 它正在等待一個字符關閉字符串並正確執行它,或者有一個字符點[。 ] 亂序在SQL字符串中,中斷正常運行並生成錯誤 –