Yii2-语法错误或访问冲突:1066不是唯一表

时间:2018-11-21 02:47:20

标签: yii2

我正在尝试在查询中联接两个表:

- 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

您知道主要问题是什么吗?谢谢!

2 个答案:

答案 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的宝贵帮助!