設(shè)計四個表,book 書本表,orders 訂單表 reward_log打賞表 consume_log 消費表 ,通過book_id與book表關(guān)聯(lián),
當(dāng)關(guān)聯(lián)超過兩張表時導(dǎo)致統(tǒng)計時數(shù)據(jù)重復(fù),只好用子查詢查出來,子查詢只能查一個字段,這里用CONCAT_WS函數(shù)將多個字段其拼接
SELECT
b.id,
b.book_name,
sum( IF ( o.create_time > 0 o.create_time 9999999999, o.price, 0 ) ) today_pay_money,
sum( IF ( o.create_time > 0 o.create_time 9999999999, 1, 0 ) ) today_pay_num,
sum( IF ( o.create_time > 999 o.create_time 9999, o.price, 0 ) ) yesterday_pay_money,
sum( IF ( o.create_time > 999 o.create_time 9999, 1, 0 ) ) yesterday_pay_num,
sum(o.price) total_pay_money,
sum( IF ( o.create_time > 9999 o.create_time 99999, 1, 0 ) ) total_pay_num,
( SELECT SUM( total_score ) FROM book_reward_log WHERE book_id = b.id ) total_score,
(
SELECT
CONCAT_WS(
',',
SUM( IF ( create_time > 0 create_time 998, score, 0 ) ),
SUM( IF ( create_time > 9999 create_time 99998, score, 0 ) ),
SUM( IF ( create_time > 99999 create_time 999998, score, 0 ) )
)
FROM
book_consume_log
WHERE
book_id = b.id
) score
FROM
book_book b
LEFT JOIN book_orders o ON b.id = o.bid
GROUP BY
b.id
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數(shù)大匯總》、《MySQL日志操作技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數(shù)據(jù)庫鎖相關(guān)技巧匯總》