Я пытаюсь получить информацию о платеже, которая находится в другой таблице, для всех заказов, которые имеют онлайн-регистрацию в пределах определенного диапазона дат. Но я получаю противоречивые результаты, а также много дубликатов.
Я пытался выполнить простое соединение между tblpayments и tblorders, но это не сработало. Я полагаю, что проблема заключается в том, что tblpayments имеет отношение один-ко-многим с tblorders, так как может быть несколько платежей по одному и тому же ордеру. Имейте в виду, что это MYSql 5.6
Вот запрос, который я пробовал и в конечном итоге не сработал.
SELECT
pmtorderid,
pmtorderdate AS 'Date',
pmtamt,
pmtchgtip,
pmtident1,
o.ordonlineorderid
FROM
tblorders o
LEFT OUTER JOIN
tblpayments p ON p.pmtorderid = o.orderid
WHERE
pmttype = 3
AND o.ordonlineorderid IS NOT NULL
AND DATE(PmtOrderDate) BETWEEN '2019-04-22' AND '2019-04-30'
GROUP BY PmtOrderID , PmtOrderDate
Когда я запрашиваю tblorders с предложением WHERE ниже, я получаю около 70+ записей, что точно, но когда я использую это предложение с JOIN, я получаю тысячи записей, которые, как я знаю, неверны.
WHERE pmttype = 3
AND o.ordonlineorderid IS NOT NULL
AND DATE(PmtOrderDate) BETWEEN '2019-04-22' AND '2019-04-30'