Я уже давно разрабатываю этот запрос, и я думал, что у меня есть его там, где я этого хотел, но, видимо, нет.SQL Query Возвращающиеся повторяющиеся результаты
В базе данных (распоряжений) имеется две записи. Запрос должен возвращать две разные строки, но вместо этого возвращает две строки, которые имеют точно такие же значения. Я думаю, что это может быть связано с GROUP BY или производными таблицами, которые я использую, но мои глаза устали и не видят проблемы. Может ли кто-нибудь из вас помочь? Заранее спасибо.
SELECT orders.billerID,
orders.invoiceDate,
orders.txnID,
orders.bName,
orders.bStreet1,
orders.bStreet2,
orders.bCity,
orders.bState,
orders.bZip,
orders.bCountry,
orders.sName,
orders.sStreet1,
orders.sStreet2,
orders.sCity,
orders.sState,
orders.sZip,
orders.sCountry,
orders.paymentType,
orders.invoiceNotes,
orders.pFee,
orders.shipping,
orders.tax,
orders.reasonCode,
orders.txnType,
orders.customerID,
customers.firstName AS firstName,
customers.lastName AS lastName,
customers.businessName AS businessName,
orderStatus.statusName AS orderStatus,
IFNULL(orderItems.itemTotal, 0.00) + orders.shipping + orders.tax AS orderTotal,
IFNULL(orderItems.itemTotal, 0.00) + orders.shipping + orders.tax - IFNULL(payments.totalPayments, 0.00) AS orderBalance
FROM orders
LEFT JOIN customers ON orders.customerID = customers.id
LEFT JOIN orderStatus ON orders.orderStatus = orderStatus.id
LEFT JOIN
(
SELECT orderItems.orderID, SUM(orderItems.itemPrice * orderItems.itemQuantity) as itemTotal
FROM orderItems
GROUP BY orderItems.orderID
) orderItems ON orderItems.orderID = orders.id
LEFT JOIN
(
SELECT payments.orderID, SUM(payments.amount) as totalPayments
FROM payments
GROUP BY payments.orderID
) payments ON payments.orderID = orders.id
Я не думаю, что знаком с ключевым словом 'IFNULL'. Если это не опечатка ('ISNULL'?), Вы должны пометить ее правильной платформой. – Aaronaught
Попробуйте удалить соединения один за другим, пока не получите одну строку, которую вы ожидаете. Последним из них является преступник. –
IFNULL - эквивалент ISNULL в MySQL –