需求大致如上:
假如有兩張表,表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 關注
- 504 瀏覽
添加回答
舉報
0/150
提交
取消