yii2 mysql如何跨数据库联表查询?

wp_post在blog_cn数据库中,而stat_weibo在task数据库中。现在两个数据表需要进行连表查询,该如何实现?

报错信息

图片描述

图片描述

阅读 7.4k
2 个回答

重写ActiveRecord::getDb()方法,默认回去根据配置的db component来连接数据库。

若两个数据库在同一个Mysql服务器中可以这样做

重写 Weibo model类的 tableName() 方法:

public static function tableName()
{
    preg_match("/dbname=([^;]+)/i", self::getDb()->dsn, $matches);
    return $matches[1].'.weibo';
}

若两个数据库不在同一个Mysql服务器中则暂时没有解决办法

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题