mysql左连接复杂正确写法

左连接where-----------------


	SELECT
				e1.real_exchange_rmb,
				IFNULL(c.channel, 1) AS promote_channel
			FROM
				(
					SELECT
						e.real_exchange_rmb,
						e.rid,
						IFNULL(r.regist_channel, 1) AS promote_channel
					FROM
						game_apply_exchange_order AS e
					LEFT JOIN game_registin AS r ON e.rid = r.user_id
					WHERE
						e.apply_time >= DATE_FORMAT(
							DATE_SUB(CURDATE(), INTERVAL 1 DAY),
							'%Y-%m-%d %H:%i:00'
						)
					AND e.apply_time < DATE_FORMAT(
						DATE_SUB(CURDATE(), INTERVAL 0 DAY),
						'%Y-%m-%d %H:%i:00'
					)
					AND e.manual_op_state IN (1, 6)
				) AS e1
			LEFT JOIN web_count AS c ON e1.promote_channel = c.channel
			WHERE
				c.compute_time = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
	-------------------------------------下面的才是对的----------			

SELECT
				e1.real_exchange_rmb,
				IFNULL(c.channel, 1) AS promote_channel
			FROM
				(
					SELECT
						e.real_exchange_rmb,
						e.rid,
						IFNULL(r.regist_channel, 1) AS promote_channel
					FROM
						game_apply_exchange_order AS e
					LEFT JOIN game_registin AS r ON e.rid = r.user_id
					WHERE
						e.apply_time >= DATE_FORMAT(
							DATE_SUB(CURDATE(), INTERVAL 1 DAY),
							'%Y-%m-%d %H:%i:00'
						)
					AND e.apply_time < DATE_FORMAT(
						DATE_SUB(CURDATE(), INTERVAL 0 DAY),
						'%Y-%m-%d %H:%i:00'
					)
					AND e.manual_op_state IN (1, 6)
				) AS e1
			LEFT JOIN (
				SELECT
					channel
				FROM
					web_count
				WHERE
					compute_time = DATE_SUB(CURDATE(), INTERVAL 1 DAY)
			) AS c ON e1.promote_channel = c.channel	

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值