为了账号安全,请及时绑定邮箱和手机立即绑定

数据库 表A和表B匹配,但仅输出表A数据的长度

数据库 表A和表B匹配,但仅输出表A数据的长度

PHP
郎朗坤 2019-03-06 05:45:19
需求大致如上: 假如有两张表,表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 里写起来麻烦一点。

查看完整回答
反对 回复 2019-03-18
  • 1 回答
  • 0 关注
  • 532 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号