从mysql获取不同的值

klh5stk1  于 2023-02-28  发布在  Mysql
关注(0)|答案(1)|浏览(136)

我有一个问题,渲染不同的值从mysql。我只是使用laravel-7 ^,我想呈现列名称,而不是列id。
我有三张table:日期、代理、用户。
在日表中,有这样的日期:
| 识别号|代理ID|
| - ------|- ------|
| 1个|1个|
在代理表中,有这样的日期:
| 识别号|用户标识|
| - ------|- ------|
| 1个|五个|
在用户表中,有这样的日期:
| 识别号|姓名|
| - ------|- ------|
| 五个|马可|
现在,我得到的信息,因为我使用联接方法:

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

第一个问题是我不能使用两次"users"表的连接。第二个问题是我不能得到代理的名称,因为days. agent_id = www.example.com和agents. user_id = users. id。agents.id and agents.user_id = users.id.
有人能帮我吗?谢谢!

polhcujo

polhcujo1#

在构建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();

相关问题