神奇的mysql查询

SQL语句:
SELECT
	ysg.id,
	ysg.NAME,
IF
	(
	( ( SELECT COUNT( * ) FROM ysol_shop_goods_sku WHERE goods_id = ysg.id ) = 0 ),
	ysg.sale_price,
IF
	(
	( SELECT MIN( sale_price ) FROM ysol_shop_goods_sku WHERE goods_id = ysg.id ) > ysg.sale_price,
	( SELECT MIN( sale_price ) FROM ysol_shop_goods_sku WHERE goods_id = ysg.id ),
	ysg.sale_price 
	) 
	) price 
FROM
	ysol_shop_goods ysg 
ORDER BY
	price DESC

sql解析:查询 ysol_shop_goods 表中的 主键,名称 ,价格,并且用价格进行排序;两个if:第一个if,判断当前主键id在 ysol_shop_goods_sku 表中有没有规格信息,如果 查询的数量为 0 就是说没有规格信息,就用自身的价格,如果有规格信息的话进入到第二个 if ,判断当前主键id在ysol_shop_goods_sku数据表的规格信息的价格,进行比较,选择出需要的值。

细节:使用查询的值作为子查询的条件(最开始查询的id,作为后面子查询的条件); 将查询到的结果作为排序的标准 例如别名 price

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值