Надеюсь, вы можете получить меня здесь. Я работаю над системой PMS, и я хочу запустить простой оператор SELECT, чтобы получить список секретных кодов для моих клиентов, основываясь на том, какая из их посылок и тип транзакции. «TransferConfirmation» таблица уже имеет идентификатор клиента и секретный код и отображает одну строку для каждого экземпляра, но по какой-то причине, когда я использую следующий запрос:Что не так с моим MySQL-запросом (UNION)?
SELECT `tc`.`transferID` AS `transferID`,
`c`.`firstName` AS `firstName`,
`c`.`lastName` AS `lastName`,
`tc`.`secretCode` AS `secretCode`,
'Purchase Order' AS `transactionType`
FROM (((((`db`.`transferconfirmation` `tc`
JOIN `db`.`customer` `c` on((`tc`.`customerID` = `c`.`customerID`)))
JOIN `db`.`transfer` `t` on((`t`.`transferID` = `tc`.`transferID`)))
JOIN `db`.`transferentry` `te` on((`t`.`transferID` = `te`.`transferID`)))
JOIN `db`.`purchaseorder` `po` on((`te`.`referenceID` = `po`.`purchaseOrderID`)))
JOIN `db`.`purchaseorderentry` `poe` on(((`po`.`purchaseOrderID` = `poe`.`purchaseOrderID`)
AND (`te`.`referenceEntryID` = `poe`.`purchaseOrderEntryID`))))
WHERE (`poe`.`collectionStatus` = 0)
UNION ALL
SELECT `tc`.`transferID` AS `transferID`,
`c`.`firstName` AS `firstName`,
`c`.`lastName` AS `lastName`,
`tc`.`secretCode` AS `secretCode`,
'Shipping Order' AS `transactionType`
FROM (((((`db`.`transferconfirmation` `tc`
JOIN `db`.`customer` `c` on((`tc`.`customerID` = `c`.`customerID`)))
JOIN `db`.`transfer` `t` on((`t`.`transferID` = `tc`.`transferID`)))
JOIN `db`.`transferentry` `te` on((`t`.`transferID` = `te`.`transferID`)))
JOIN `db`.`shippingorder` `so` on((`te`.`referenceID` = `so`.`shippingOrderID`)))
JOIN `db`.`shippingorderentry` `soe` on(((`so`.`shippingOrderID` = `soe`.`shippingOrderID`)
AND (`te`.`referenceEntryID` = `soe`.`shippingOrderEntryID`))))
WHERE (`soe`.`collectionstatus` = 0)
Я продолжаю получать результаты с повторяющимися данными Разница лишь в том с транзакцией. Я думаю, мой вопрос в том, что если секретный код был выбран один раз, как мне запретить отображение какой-либо другой строки одного и того же кода.
Пожалуйста, отформатируйте запрос. Он не читается. – Jens
Это действительно нечитаемо, но он только хочет получить уникальные результаты, поэтому --- добавьте DISTINCT () на каждые , вы не хотите получать повторяющиеся значения. –
user1234141515134321321513
Извините за мой запрос. Будет ли вторая часть UNION также игнорировать дублирующий код с первого? – BrodaTherapy