php - 使用 Laravel Eloquent 连接同一服务器上不同数据库中的两个 MySQL 表

标签 php mysql database laravel

我在两个不同的数据库中有两个表。两个数据库都托管在同一个 AWS RDS 服务器上。我有一个可以访问两个数据库的用户帐户。 我在 config\database.php 中定义了两个不同的连接:

return array(
    'default' => 'mysql',
    'connections' => array(
        # Our primary database connection
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => 'samehost',
            'database'  => 'database1',
            'username'  => 'user1',
            'password'  => 'pass1'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
        # Our secondary database connection
        'mysql2' => array(
            'driver'    => 'mysql',
            'host'      => 'samehost',
            'database'  => 'database2',
            'username'  => 'user2',
            'password'  => 'pass2'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);

我有两个模型,table1 连接到 database1table2 连接到 database2。两个表都有一个列 id。如何使用 Eloquent 模型对具有相同 id 的行加入查询?

最佳答案

这个解决方案对我有用:

Model1::where('postID',$postID)
      ->join('database2.table2 as db2','Model1.id','=','db2.id')
      ->select(['Model1.*','db2.firstName','db2.lastName'])
      ->orderBy('score','desc')
      ->get();

关于php - 使用 Laravel Eloquent 连接同一服务器上不同数据库中的两个 MySQL 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41423603/

相关文章:

php - 哪种编写 PDO 语句更好、更安全的方法?

php - "Caching"mySQL 查询,这是一个好的做法吗?

sql - 如果在 SQL 中有几行重复,如何只删除几行?

mysql - 将多个配置文件表连接到用户表

database - 如何为基于 Web 服务的应用程序禁用 Rails 3 上的数据库

php - iPhone强制下载文件?

php - 谷歌浏览器 Cookie 问题

PHP PDO : Stored Procedure Return Empty Result

php - 如何在 grep 输出时将时间戳附加到每一行?

mysql - 求每天的平均值,如果当天没有记录则取最新的