鍍金池/ 問答/PHP  數(shù)據(jù)庫/ sql優(yōu)化:查詢時(shí)加判斷

sql優(yōu)化:查詢時(shí)加判斷

1.數(shù)據(jù)表的結(jié)構(gòu):
訂單ID:orderid,
用戶ID:memberid,
下單日期:order_date

2.需求:需要查詢出2017-04月下單的記錄(orderid,memberid),如果當(dāng)前記錄的用戶有在4月份之前下過單,第三列是否訂購過:是,4月份之前沒有下過單的,第三列是否訂購過:否,

3.已經(jīng)寫好的sql:

SELECT orderid,memberid, '是' AS '是否訂購過' FROM ordersum WHERE order_date >= '2017-04-01' AND order_date < '2017-05-01' AND memberid IN (SELECT memberid FROM ordersum WHERE order_date < '2017-04-01')
UNION
SELECT orderid,memberid, '否' AS '是否訂購過' FROM ordersum WHERE order_date >= '2017-04-01' AND order_date < '2017-05-01' AND memberid  NOT IN (SELECT memberid FROM ordersum WHERE order_date < '2017-04-01')
ORDER BY orderid

可以實(shí)現(xiàn)該需求,只是感覺還有優(yōu)化的空間,請(qǐng)大家?guī)兔纯?,謝謝!

回答
編輯回答
萌吟

mysql 的 if 了解下。

2018年4月10日 06:56
編輯回答
拼未來
select orderid, memberid, bool_judge from (select orderid, memberid, case when order_date <= '2017-04-01' then '是' else '否' end as bool_judge) as test where order_date >= '' and order_date <= ''
2017年8月9日 18:34