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

需求大致如上:

假如有两张表,表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();
    

结果如下:

https://img2.mukewang.com/5c8f387800014b0604450121.jpg

我只想要返回符合条件的order数据,不需要连item的数量也加进去

求大佬解答,谢谢

郎朗坤
浏览 533回答 1
1回答

莫回无

你这是一对多的关系,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 里写起来麻烦一点。
打开App,查看更多内容
随时随地看视频慕课网APP