我有2个数据库。
db1和db2。我在config / main.php文件中定义了它们
db1具有表table1,db2具有table2
table1有一列,它是table2的主键
如何在table1中定义关系?
我像往常一样做,但是它从db1.table2中检索数据。
基本上我想链接db1.table1和db2.table2
答案 0 :(得分:0)
您必须使用Yii Query Builder,并进行如下查询:
SELECT u1.* FROM database1.users u1 LEFT JOIN database2.users u2 ON u1.id=u2.id WHERE u2.id IS NOT NULL;
答案 1 :(得分:0)
要使用另一个数据库连接,您可以在模型中覆盖getDbConnection()
方法。看看:
public function getDbConnection(){
Yii::app()->db2->setActive(true);
return Yii::app()->db2;
}
无论如何,Yii 1.X并未正式支持跨数据库关系。您可能需要编写一些代码。正如Yii的官方 Wiki 所说:
对多数据库支持的限制: 一个数据库中的表不能直接引用另一个数据库中的表,这意味着关系不会跨越DB边界。