gpt4 book ai didi

php - 查询 3 个表 mysql Laravel

转载 作者:行者123 更新时间:2023-11-29 05:28:37 25 4
gpt4 key购买 nike

我有多个表。

  • 比赛
  • 参赛作品
  • 用户

用户可以提交参赛作品参加比赛,一个用户可以提交多个参赛作品参加比赛。

我需要知道提交特定比赛条目的用户的电子邮件。电子邮件在用户表中。

从比赛中获得所有参赛作品并不难,我通过以下方式实现:

$entries = Contest::find(1)->entries()->first();

现在我拥有属于比赛的所有条目,其 id 为 1(例如使用)。现在,如何高效地从我的用户表中获取所有用户电子邮件?

三个链接的表,我从竞赛 ID 开始,然后获取该竞赛的所有条目,然后需要获取我尚未获取的所有用户电子邮件。

希望这是有道理的。如果没有,请离开!

最佳答案

在这种情况下使用 Query Builder 可能比 Eloquent 更容易:

// Get array of users that submitted entries to contest ID 45
$users = DB::table('contests AS c')
->join('entries AS e','e.contest_id','=','c.id')
->join('users AS u','e.user_id','=','u.id')
->where('c.id','=',45) // Contest ID
->get();

//or get an array of emails:
$users = DB::table('contests AS c')
->join('entries AS e','e.contest_id','=','c.id')
->join('users AS u','e.user_id','=','u.id')
->where('c.id','=',45) // Contest ID
->lists('email');

在 Laravel 中,Eloquent 并不总是最好的决定。有时查询生成器更好/更容易。 Eloquent 对于简单的功能和关系更方便。

关于php - 查询 3 个表 mysql Laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com