我要加入两个表,但要满足以下条件:仅显示产品类型为1的产品,并且该产品应在img tbl中可用,并且不应该具有noImg.jpg
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中进行了以下操作,但查询似乎不正确,因为它没有给我正确的结果。
Product::join('img', function($join) {
$join->on('products.id', '=', 'img.product_id')
;
})
->where('img.file', '!=', 'noImg.jpg')
->where('products.product_type', 1)
->paginate(100);
答案 0 :(得分:1)
尝试
Product::rightJoin('img', function($join) {
$join->on('products.id', '=', 'img.product_id')
;
})
->where('img.file', '<>', 'noImg.jpg')
->where('products.product_type','=',1)
->get();
答案 1 :(得分:0)
尝试此代码
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和产品是您的表名。