需求大致如上:
假如有两张表,表order和表item其中表order可以匹配多条表item的数据但是表item的数据里有些数据的价格的有些为零有些不为零现在需要输出order数据中有item的价格为0的数据
我用的是thinkphp3 代码如下:
$res=D('youzan_order')->alias('a')
->field('a.tid')
->join("cel_youzan_order_item b on a.tid=b.youzan_tid",'LEFT')
->where("a.tid='E20180608105403003500005' and b.points_price='0'")->select();
结果如下:
我只想要返回符合条件的order数据,不需要连item的数量也加进去
求大佬解答,谢谢
1 回答
莫回无
TA贡献1865条经验 获得超7个赞
你这是一对多的关系,JOIN 之后肯定是有多条记录,如果你不关心 item 表的内容,可以加个 distinct(true) 去下重就可以了:
$res=D('youzan_order')->alias('a')
->distinct(true)
->field('a.tid')
->join("cel_youzan_order_item b on a.tid=b.youzan_tid",'LEFT')
->where("a.tid='E20180608105403003500005' and b.points_price='0'")->select();
或者用 exists 子查询,在 tp 里写起来麻烦一点。
- 1 回答
- 0 关注
- 532 浏览
添加回答
举报
0/150
提交
取消
