Php 如何使用CASE plus将plus GROUP BY连接到单个MySQL语句中
使用上面的编码CASE和JOIN,我在理想的结果表THX Gordon Linoff中添加了两个字段cate_name和final_price 现在我想在理想的结果表中计算另外两个名为avg_rate和count_comment的字段,我该怎么做 用户AAA和BBB将评级添加到book 001中,因此book 001的平均评级为4+5/2=4.5=5 用户CCC在书002中添加了评级,因此书002的平均评级为2 用户XXX和YYY向book 001添加了注释,因此book 001的count\u注释=2Php 如何使用CASE plus将plus GROUP BY连接到单个MySQL语句中,php,mysql,sql,join,case,Php,Mysql,Sql,Join,Case,使用上面的编码CASE和JOIN,我在理想的结果表THX Gordon Linoff中添加了两个字段cate_name和final_price 现在我想在理想的结果表中计算另外两个名为avg_rate和count_comment的字段,我该怎么做 用户AAA和BBB将评级添加到book 001中,因此book 001的平均评级为4+5/2=4.5=5 用户CCC在书002中添加了评级,因此书002的平均评级为2 用户XXX和YYY向book 001添加了注释,因此book 001的count\u
SELECT B. * , SC.cate_name, (
CASE WHEN special_offer_type = 'Fixed Value'
THEN B.price - special_offer
WHEN special_offer_type = 'Discount %'
THEN B.price * ( 1 - special_offer / 100.0 )
ELSE B.price
END
) AS final_price
FROM book B
JOIN setting_category SC ON B.cate_id = SC.cate_id
试试这个:
选择B.*,SC.cate_name,
特价时的情况\u type='Fixed Value'
然后B.价格-特价
当特价商品类型为“折扣%”时
然后B.价格*1-特价/100.0
要价
终止
作为最终价格,
如果nullxx.平均速率为'0',
如果nullyy.count_注释,'0'
从B.cate\u id=SC.cate\u id上的book B JOIN setting\u category SC
左连接选择a.isbn、suma.rate/counta.rate作为平均速率
摘自a级图书
按a.isbn分组为b.isbn上的xx=xx.isbn
左连接选择c.isbn,计数*作为书本注释c中的计数注释
按c.isbn分组为b.isbn上的yy=yy.isbn
CMIIW
编辑..输出结果应输出到表簿中的所有记录。但是,该语句只能在count_comment>0时显示记录。即,结果仅显示记录isbn 001。无法显示isbn 002和isbn 003。请编辑。。很抱歉使用左join:D和ifnull命令。。因此空值变为0。输出基于book表,其他表可以为空。。所以使用左联接表来联接基于book表的表。。如果结果为空,则使用ifnull更改值:D
book
-----------------------------------------------------------
isbn cate_id price special_offer special_offer_type
001 1 125 5 Fixed Value
002 1 90 30 Discount %
003 2 150 50 Fixed Value
setting_category
--------------------
cate_id cate_name
1 Fiction
2 Dictionary
book_rating
------------------------------------------
user dateadd timeadd isbn rate
AAA 2014/03/20 15:00:00 001 4
BBB 2014/03/21 15:00:00 001 5
CCC 2014/03/22 15:00:00 002 2
book_comment
----------------------------------------------
user dateadd timeadd isbn comment
XXX 2014/03/20 16:00:00 001 good
YYY 2014/03/21 16:00:00 001 great
ideal_result_table
-----------------------------------------------------------------------------------------------------------------
isbn cate_id price special_offer special_offer_type cate_name final_price avg_rate count_comment
001 1 125 5 Fixed Value Fiction 120 5 2
002 1 90 30 Discount % Fiction 63 2 0
003 2 150 50 Fixed Value Dictionary 100 0 0