需求大致如上:
假如有兩張表,表order和表item其中表order可以匹配多條表item的數(shù)據(jù)但是表item的數(shù)據(jù)里有些數(shù)據(jù)的價(jià)格的有些為零有些不為零現(xiàn)在需要輸出order數(shù)據(jù)中有item的價(jià)格為0的數(shù)據(jù)
我用的是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();
結(jié)果如下:
我只想要返回符合條件的order數(shù)據(jù),不需要連item的數(shù)量也加進(jìn)去
求大佬解答,謝謝
1 回答

莫回?zé)o
TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
你這是一對(duì)多的關(guān)系,JOIN 之后肯定是有多條記錄,如果你不關(guān)心 item 表的內(nèi)容,可以加個(gè) 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 里寫起來麻煩一點(diǎn)。
- 1 回答
- 0 關(guān)注
- 500 瀏覽
添加回答
舉報(bào)
0/150
提交
取消