首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Laravel中使用条件连接两个表

在Laravel中使用条件连接两个表
EN

Stack Overflow用户
提问于 2019-12-12 17:45:14
回答 2查看 52关注 0票数 0

我有两个要连接的表,条件如下:只显示产品类型为1的产品,并且产品应该在img tbl中可用,并且不应该有noImg.jpg

代码语言:javascript
复制
products tbl                  img tbl
+-------------------------+   +--------------------------------+
| id   | product_type         | id    | product_id | file
---------------------------   +---------------------------------
| 123  |  1                    | 1    |123         | 1.jpg
| 234  |  2                    | 2    |234         | noImg.jpg
| 345  |  1                    | 3    |345         | 3.jpg

我在Laravel中执行了以下操作,但查询似乎不正确,因为它没有给我正确的结果。

代码语言:javascript
复制
Product::join('img', function($join) {
                                $join->on('products.id', '=', 'img.product_id')
                                ;
                             })
                                ->where('img.file', '!=', 'noImg.jpg')
                                ->where('products.product_type', 1)
                                ->paginate(100);
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-12-12 17:58:20

尝尝这个

代码语言:javascript
复制
Product::rightJoin('img', function($join) {
            $join->on('products.id', '=', 'img.product_id')
            ;
        })
            ->where('img.file', '<>', 'noImg.jpg')
            ->where('products.product_type','=',1)
            ->get();
票数 0
EN

Stack Overflow用户

发布于 2019-12-12 17:58:12

试试这段代码

代码语言:javascript
复制
Product::rightJoin('img', function($join) {
    $join->on('products.id', '=', 'img.product_id')
        ->where('img.file', '!=', 'noImg.jpg');
    })
    ->where('products.product_type', '=', 1)
    ->paginate(100);

我相信img和products是您的表名。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59301681

复制
相关文章

相似问题

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