【问题标题】:Laravel 4: Join tables from different databaseLaravel 4:连接来自不同数据库的表
【发布时间】:2014-02-26 10:56:15
【问题描述】:

我有一个连接不同数据库的项目,我想使用 laravel 4 连接来自不同数据库的这些表。我已经搜索过这个问题,但我找不到正确的答案。是否可以在 laravel 4 中连接来自不同数据库的表?如果可能的话,有没有人可以帮助我如何建立一个查询?

【问题讨论】:

  • 你确定不是不同的表?您不能从不同的数据库加入。这只是一个 SQL 限制。
  • 是的,我确定。我找到了这个查询 SELECT u1.* FROM database1.users u1 LEFT JOIN database2.users u2 ON u1.id=u2.id WHERE u2.id IS NOT NULL; 但不是在 laravel 4 中。我想使用 laravel 4 尝试这个查询。

标签: php mysql laravel laravel-4 jointable


【解决方案1】:

您完全可以使用DB class

$results = DB::select('select * from database1.users u1 LEFT JOIN database2.users u2 ON u1.id = u2.id WHERE u2.id = ?', array(5));

您还可以使用Fluent 来构建查询,如下所示:

$users = DB::table('db1.users as db1')
  ->select('db1.*')
  ->leftJoin('db2.users as db2', 'db1.id', '=', 'db2.id')
  ->where('db2.id', 5)
  ->get();

【讨论】:

  • Morgon,我还有一个问题,我应该从哪里获取database1、database2等?我知道,我只是在配置文件中设置数据库信息,但是我如何声明或调用某个数据库?
  • 在这种情况下,这将是 MySQL 中数据库的名称。如果您的 Laravel 项目的数据库称为“laravel”,并且您在另一个名为“lookup”的数据库中有数据,那么您只需将“database1”和“database2”替换为这些值,假设您的 MySQL 用户可以访问这两个数据库.
  • 嗨,Morgon,感谢您的帮助。我测试了查询,它可以工作!
猜你喜欢
  • 2019-03-09
  • 2011-06-21
  • 2018-02-06
  • 1970-01-01
  • 2014-10-05
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多