지난번 문의드렸던것에서 다시 수정작업중입니다..
이렇게 하면 원하는 값이 나오기는 하는데
2개의 값으로 중복되어 두개씩 나오게 됩니다.
이걸 쿠폰이 있는 하나의 값만 출력할 수 있을지...쿠폰이 없는건 없는대로 출력되구요..
원하는 값은.. ggd.mode =e407 안에 들어있는 상품 군에서 쿠폰이
첫번재 셀렉문처럼 카테고리 쿠폰이있으면 그 쿠폰값이
두번째 셀렉문처럼 직접쿠폰이 있으면 그 쿠폰값이 붙는 것입니다..
고수님들의 가르침 부탁드립니다.
SELECT ggd.no AS NO, gd.goodsno,gd.goods_price, gd.goodsnm, ggl.category,gcc.couponcd, gc.coupon -- , gd.*
,gc.price AS ggprice, gd.goods_price-(gd.goods_price*gc.price)/100 AS gprice
FROM gd_goods_display AS ggd
INNER JOIN gd_goods AS gd ON gd.goodsno = ggd.goodsno
INNER JOIN gd_goods_link ggl ON ggl.goodsno = gd.goodsno
LEFT JOIN gd_coupon_category AS gcc ON gcc.category = ggl.category
LEFT JOIN gd_coupon AS gc ON gc.couponcd = gcc.couponcd
WHERE ggd.mode = 'e407'
GROUP BY gd.goodsno
UNION
SELECT ggd.no AS NO, gd.goodsno,gd.goods_price, gd.goodsnm, gcg.couponcd, gc.couponcd,gc.coupon -- , gd.*
,gc.price AS ggprice, gd.goods_price-(gd.goods_price*gc.price)/100 AS gprice
FROM gd_goods_display AS ggd
INNER JOIN gd_goods AS gd ON gd.goodsno = ggd.goodsno
INNER JOIN gd_coupon_goodsno AS gcg ON gd.goodsno = gcg.goodsno
JOIN gd_coupon AS gc ON gc.couponcd = gcg.couponcd
WHERE 1=1
AND ((gc.sdate <= NOW() AND gc.edate >= NOW() AND gc.priodtype='0')
OR(gc.priodtype= 1 AND (gc.edate >= NOW() OR gc.edate = '') ) )
AND ggd.mode = 'e407'
GROUP BY gd.goodsno
ORDER BY NO ASC
|