解决Mysql的Not unique table/alias报错问题
2021-01-31 14:57:04
在使用innerJoin的时候由于两次同时使用到了一个表名,出现Not unique table/alias报错
错误语句如下:
return BfamsBooktable::find()->select([
'bfams_booktable.*',
'bfams_derivetable.TITLE as TITLE',
'ks_admin.name as BORROWERNAME',
'ks_admin.name as HANDPERSONNAME',
])
->innerJoin('bfams_derivetable', 'bfams_booktable.RECORD_ID = bfams_derivetable.RECORD_ID')
->innerJoin('ks_admin', 'bfams_booktable.BORROWERID = ks_admin.id')
->leftjoin('ks_admin', 'bfams_booktable.HANDPERSON = ks_admin.id')
->where($where)
->asArray();
解决办法:
return BfamsBooktable::find()->select([
'bfams_booktable.*',
'bfams_derivetable.TITLE as TITLE',
'ks_admin.name as BORROWERNAME',
'a1.name as HANDPERSONNAME',
])
->innerJoin('bfams_derivetable', 'bfams_booktable.RECORD_ID = bfams_derivetable.RECORD_ID')
->innerJoin('ks_admin', 'bfams_booktable.BORROWERID = ks_admin.id')
->leftjoin('ks_admin a1', 'bfams_booktable.HANDPERSON = a1.id')
->where($where)
->asArray();
错误语句如下:
return BfamsBooktable::find()->select([
'bfams_booktable.*',
'bfams_derivetable.TITLE as TITLE',
'ks_admin.name as BORROWERNAME',
'ks_admin.name as HANDPERSONNAME',
])
->innerJoin('bfams_derivetable', 'bfams_booktable.RECORD_ID = bfams_derivetable.RECORD_ID')
->innerJoin('ks_admin', 'bfams_booktable.BORROWERID = ks_admin.id')
->leftjoin('ks_admin', 'bfams_booktable.HANDPERSON = ks_admin.id')
->where($where)
->asArray();
解决办法:
return BfamsBooktable::find()->select([
'bfams_booktable.*',
'bfams_derivetable.TITLE as TITLE',
'ks_admin.name as BORROWERNAME',
'a1.name as HANDPERSONNAME',
])
->innerJoin('bfams_derivetable', 'bfams_booktable.RECORD_ID = bfams_derivetable.RECORD_ID')
->innerJoin('ks_admin', 'bfams_booktable.BORROWERID = ks_admin.id')
->leftjoin('ks_admin a1', 'bfams_booktable.HANDPERSON = a1.id')
->where($where)
->asArray();