我正在尝试在查询中联接两个表:
- sc_cours -
idCour
volHoraireCour
idMat
- sc_matieres -
idMat
nomMat
查询代码如下
$query->select('*')
->from('sc_cours')
->innerJoin('sc_matieres', 'sc_cours.idMat = sc_matieres.idMat');
但是我收到以下错误
SQLSTATE[42000]: Syntax error or access violation: 1066 Table/alias: 'sc_matieres' non unique
The SQL being executed was: SELECT * FROM `sc_cours` INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat INNER JOIN `sc_matieres` ON sc_cours.idMat = sc_matieres.idMat
您知道主要问题是什么吗?谢谢!
答案 0 :(得分:0)
从错误中您可以看到您有两个完全相同的内部联接。在模型中定义关系,而不只是->innerJoin('nameOfRelation');
答案 1 :(得分:0)
好吧,->ScCours::find()->join('mat')
出现了这个错误Missing argument 2 for yii\db\Query::join()
,但是谢谢您,您把我放在正确的道路上,因为当我尝试使用with
时它可以工作刚完成->ScCours::find()->with('mat')
。现在已经成功了,再次感谢Borisa Eric的宝贵帮助!