【发布时间】:2018-06-01 13:13:46
【问题描述】:
我在 Laravel 5.6 中使用 Eloquent 处理以下查询。
我需要返回分配了5 的tag_id 的所有问题,其中问题表中的project_id 和item_id 与我的数据透视表中的project_id 和issue_id 匹配。
问题表:
issues_tags 数据透视表:
我尝试了以下代码,但它返回问题表中的所有问题,但预期是 3 个结果。
预期结果
issues 表返回的结果应该是 ID 1、4 和 5。
$issues = Issue::join('issues_tags', 'issues_tags.project_id', 'issues_tags.issue_id')->where('issues_tags.tag_id', 5)->select('issues.*')->get();
【问题讨论】:
-
试试
leftJoin而不是join -
产生相同的结果。
-
您可以使用
toSql或getQueryLog方法查看SQL 查询是否正常? -
$issues = Issue::join('issues_tags', 'issues.project_id', 'issues_tags.project_id')->join('issues_tags', 'issues.item_id', 'issues_tags.issue_id')->where('issues_tags.tag_id', 5)->select('issues.*')->get(); -
你能告诉我们预期的结果吗?
标签: php mysql laravel eloquent