【问题标题】:To get different values from mysql从 mysql 获取不同的值
【发布时间】:2023-02-23 01:48:55
【问题描述】:

我在从 mysql 渲染不同的值时遇到问题。我只使用 laravel-7^ 并且我想呈现列名而不是列 id。

我有三个表:Day、agent、user。

在日表中,有这个日期:

ID agent_id
1 1

在代理表中,有这个日期:

ID user_id
1 5

在用户表中,有这个日期:

ID name
5 Marco

现在,我得到了信息,因为我使用了 join 方法:

$days = DB::table('days')
       ->join('users', 'days.user_id', '=', 'users.id')
       ->join('users', 'days.agent_id', '=', 'users.id')
       ->select('days.id', 'users.name')
       ->get();

第一个问题是我不能在连接中使用两次“用户”表。第二个问题是我无法获取代理的名称,因为 days.agent_id = agents.id 和 agents.user_id = users.id。

有人可以帮助我吗?谢谢!

【问题讨论】:

    标签: mysql eloquent laravel-7


    【解决方案1】:

    构建 SQL 查询时,您需要为表(和列)提供唯一的别名,但您当前的查询与示例表建议的关系不匹配(days 没有 user_id)。我认为应该是:

    $days = DB::table('days')
           ->join('agents', 'days.agent_id', '=', 'agents.id')
           ->join('users', 'agents.user_id', '=', 'users.id')
           ->select('days.id', 'users.name')
           ->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-13
      • 1970-01-01
      • 1970-01-01
      • 2018-07-22
      • 2023-04-06
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多