Yii多数据库关系

时间:2014-11-06 15:30:15

标签: yii

我有2个数据库。

db1和db2。我在config / main.php文件中定义了它们

db1具有表table1,db2具有table2

table1有一列,它是table2的主键

如何在table1中定义关系?

我像往常一样做,但是它从db1.table2中检索数据。

基本上我想链接db1.table1和db2.table2

2 个答案:

答案 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 所说:

  

对多数据库支持的限制:   一个数据库中的表不能直接引用另一个数据库中的表,这意味着关系不会跨越D​​B边界。