我想在我的页面上显示所有产品。每个产品有x个图像。有些产品的图像设置为封面图像。现在我需要得到所有带有封面图像的产品,如果某个产品没有封面图像集,那么我需要得到一个随机图像。
+----+--------------+
| id | product_name |
+----+--------------+
| 1 | Ferrari |
| 2 | Audi |
| 3 | BMW |
+----+--------------+
+----+--------------+------------+-------------+--+
| id | image_name | product_id | cover_image |
+----+--------------+------------+-------------+
| 1 | audi.jpg | 2 | 1 |
| 2 | Audis.jpeg | 2 | |
| 3 | bemms.jpg | 3 | 1 |
| 4 | ferrari.jpeg | 1 | |
| 5 | ferr.jpg | 1 | |
+----+--------------+------------+-------------+
到目前为止,我已经尝试了这个代码,但它不能解决我的问题,因为我只得到封面图像集的图片。
public static function get_all_products() {
return \DB::table('products')
->leftjoin('product_pictures', 'products.id', '=', 'product_pictures.product_id')
->select('products.name', 'product_pictures.images_name')
->where('product_pictures.cover_image', '=', 1)
->get();
}
欢迎任何帮助!
2条答案
按热度按时间yjghlzjz1#
你可以自己加入
product_pictures
稍微调整一下tableon
条款演示
omqzjyyz2#
我要回答我自己的问题也许有人会面临同样的问题。我实际需要的sql查询: