У меня есть следующий запрос, который составляет 3 секунды на столе из 1500 строк, кто-то знает, как его упростить?Мне нужно упростить подзапрос MySQL для производительности - пожалуйста, помогите
SELECT dealers.name, dealers.companyName, dealer_accounts.balance
FROM dealers
INNER JOIN dealer_accounts
ON dealers.id = dealer_accounts.dealer_id
WHERE dealer_accounts.id = (
SELECT id
FROM dealer_accounts
WHERE dealer_accounts.dealer_id = dealers.id
AND dealer_accounts.date < '2010-03-30'
ORDER BY dealer_accounts.date DESC, dealer_accounts.id DESC
LIMIT 1
)
ORDER BY dealers.name
мне нужна последняя dealer_accounts запись для каждого дилера по определенной дате объединения на dealer_id поле на столе dealer_accounts. Это действительно должно быть просто, я не знаю, почему я изо всех сил пытаюсь найти что-то.
Является ли 'DEALER_ACCOUNTS.id' автоинкремент? И возможно ли, чтобы «DEALER_ACCOUNT» имел значение «date date» с обратной связью? В противном случае 'MAX (dealer_accounts.id)' должно быть хорошо. –
Спасибо за ваш комментарий, однако даты могут быть добавлены не в порядке, в противном случае ваше предложение сработало бы. Спасибо за помощь! – Richard