首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拉力维尔-连接3张桌子

拉力维尔-连接3张桌子
EN

Stack Overflow用户
提问于 2018-08-05 17:18:57
回答 3查看 59关注 0票数 0

我有三个表:用户,访问,血检,

这些桌子看起来如下:

用户: id

访问: id,user_id

血检: id,visit_id

我需要得到的是当前用户的“从血液测试中选择*”

我试过这样做:

代码语言:javascript
复制
$item = User::findOrFail($id);   //get ID of current user

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $item)
    ->get();

但它不起作用。

如有任何帮助,我们将不胜感激:)

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-08-05 19:06:11

试试这个:

代码语言:javascript
复制
$item = User::findOrFail($id);

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $item->id)
    ->get();
票数 0
EN

Stack Overflow用户

发布于 2018-08-05 17:36:10

作为集合,您将获得所有用户数据。

代码语言:javascript
复制
 $item = User::findOrFail($id);

您只需要通过\Auth::id()提供当前用户的id,或者直接使用$id代替$item

代码语言:javascript
复制
$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', \Auth::id())
    ->get();

或直接使用$id

代码语言:javascript
复制
->where('users.id', $id)
票数 2
EN

Stack Overflow用户

发布于 2018-08-06 01:55:56

代码语言:javascript
复制
$item = User::findOrFail($id);   //get ID of current user

$bt = DB::table('bloodtests')
    ->join('visits', 'bloodtests.visit_id', '=' ,'visits.id')
    ->join('users', 'visits.user_id', '=' ,'users.id')
    ->select(
        'bloodtests.id',  
        'bloodtests.visit_id')
    ->where('users.id', $id)
    ->get();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51696591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档