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