【问题标题】:How to combine two different tables in different database using SQL in laravel如何在 laravel 中使用 SQL 组合不同数据库中的两个不同表
【发布时间】:2021-07-02 20:12:37
【问题描述】:

预期:

  1. select robotid, number from tool where is_active = 1
  2. select * from robot_team where id = robotid( robotid from tool)
  3. foreach id(from robot_team), number(from tool) , status_za(from robot_team), status_zb(from robot_team), status_zm(from robot_team), status_qs(from robot_team)

结果:

  1. 无法通过邮递员显示成功

代码:

public function robotStatus()
    {
        $arr=[];
                
        $robotlist = DB::table('robot_team AS u')
                ->Join(DB::connection('sql')->table('tool AS m'), 'u.id', '=', 'm.robotid')
                ->select('u.*', 'u.id AS uid', 'm.number AS mnumber')
                ->where('m.is_active', '=', 1)
                ->orderBy('u.id', 'desc')
                ->get();
        if(count($robotlist)>0){
        foreach ($robotlist as $v) {

            $robot_arr = [
            "id" => $v->uid,
            "number" => $v->mnumber,
            "FA" => $v->status_fa,
            "FC" => $v->status_fc,
            "FM" => $v->status_fm,
            "PS" => $v->status_ps
            ];
            $arr[]=$robot_arr;
        }}

        return $arr;


    }

评论:

大家好,

Laravel : join two tables of different db connections

我尝试使用上面的代码进行组合,但失败了。

我已经阅读了上面的链接,但它无法达到我的目的,因为它是 mysql 中不同数据库中的两个表。

请帮我解决以上问题。

谢谢大家。

【问题讨论】:

  • 您提供的链接中问题的答案是不可能
  • 但是mysql中可以有两个数据库吗?
  • 可以从两个mysql数据库中查询,但是join是不可能的
  • 只要在同一个连接中,就可以从两个 MySQL 数据库中查询(通过连接)。如果连接不同,这是不可能的。
  • 但是是否可以在变量或数组中选择表。然后使用 join 合并?

标签: php mysql sql database laravel


【解决方案1】:

使用->Join 时,您要求数据库在结果集到达您的应用程序代码之前加入数据表。无论编程语言和框架如何,这两个数据库都必须驻留在同一数据库服务器中。从您的问题中不清楚是否是这种情况。

即使这两个数据库位于同一台服务器上,我也不确定 Laravel 是否支持跨不同连接的连接。 The Laravel documentation doesn't mention it,但无论如何它可能会受到支持。也许实际的错误消息(而不是“但它失败了”)可以说明问题。

如果您的数据集相当小,我建议您使用 PHP 代码手动组合数据集。如果您的数据集很大,我会探索将数据从一个数据库复制到另一个数据库的可能性(以访问同一数据库中的两个表)。

【讨论】:

    猜你喜欢
    • 2019-02-18
    • 2021-07-09
    • 2021-03-29
    • 1970-01-01
    • 2017-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多