You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何按条件获取左表全量数据及关联表匹配数据

实现思路

你的需求可以通过LEFT JOIN(左连接)实现,核心注意点:当前登录用户的筛选条件要写在关联条件ON子句中,不能写在WHERE子句中,否则会过滤掉没有匹配cart记录的product数据。


参考SQL语句

假设当前登录用户的id为@current_user_id(实际使用时替换为你传入的真实用户id变量即可),语句如下:

SELECT 
  p.id AS product_id,
  p.name AS product_name,
  p.price AS product_price,
  c.id AS cart_id,
  c.qty AS cart_qty,
  c.user_id
FROM product p
LEFT JOIN cart c 
  ON p.id = c.product_id 
  AND c.user_id = @current_user_id;

说明

  • 所有product表的记录都会被保留
  • 如果某商品在当前用户的购物车中存在,就会返回对应的cart表字段值,否则cart相关字段返回NULL
  • 如果不需要返回cart的id、user_id字段,可以自行调整SELECT后的字段列表

内容的提问来源于stack exchange,提问作者user6085744

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 04:42:03