Подзапросы (в / существует), чтобы присоединиться
SELECT *, `o_cheque_request.member_id`, `o_cheque_request.wallet_id`
FROM `o_cheque_request`, `o_member`, o_memberinfo`
WHERE `o_cheque_request.member_id` = `o_member.member_id`
AND `o_member.member_id` = `o_memberinfo.member_id`
AND withdraw_date >='2012-07-21'
AND `o_cheque_request.member_id`
IN (SELECT `member_id` FROM `o_cheque_request` GROUP BY `member_id` HAVING SUM(gross_amount ) <=10000)
GROUP BY `o_cheque_request.withdraw_date`, `o_cheque_request.member_id` ORDER BY `request_id` DESC
это занимает много времени около 29 секунд, как уменьшить... используя соединение... Ребята, пожалуйста, помогите мне... Структура таблицы для o_cheque_requestrequest_id
bigint (20) без знака NOT NULL auto_increment,wallet_id
int (11) NOT NULL по умолчанию '0',member_id
int (10) unsigned NOT NULL по умолчанию '0',withdraw_date
дата по умолчанию NULL,amount
int (10) unsigned NOT NULL по умолчанию '0',gross_amount
float (10,2) без знака NOT NULL по умолчанию '0.00',admin_charge
float (10,2) без знака NOT NULL по умолчанию '0.00',tds
float (10,2) без знака NOT NULL по умолчанию '0.00',repurchase
float (10,2) без знака NOT NULL по умолчанию '0.00',net_amount
float (10,2) без знака NOT NULL по умолчанию '0.00',withdraw_type
varchar (50) по умолчанию NULL,bank_name
varchar (50) по умолчанию NULL,cheque_no
varchar (50) по умолчанию NULL,courier_name
varchar (50) по умолчанию NULL,tracking_no
varchar (50) по умолчанию NULL,cheque_date
дата по умолчанию "0000-00-00",
ОСНОВНОЙ КЛЮЧ (request_id
),
KEY member_id
(member_id
)
) ENGINE = InnoDB CHARSET ПО УМОЛЧАНИЮ =latin1 AUTO_INCREMENT=4738;
1 ответ
ПОПРОБУЙТЕ С ЭТИМ
SELECT * FROM (
SELECT *, `o_cheque_request.member_id`, `o_cheque_request.wallet_id`
FROM `o_cheque_request`
JOIN `o_member` ON `o_cheque_request.member_id` = `o_member.member_id`
JOIN `o_memberinfo` ON `o_member.member_id` = `o_memberinfo.member_id`
WHERE withdraw_date >='2012-07-21'
GROUP BY `o_cheque_request.member_id` HAVING SUM(`o_cheque_request.gross_amount` ) <=10000
) AS T
GROUP BY `withdraw_date`, `member_id` ORDER BY `request_id` DESC