我试图编写一个查询来纠正表中 DATETIME 字段中的错误,但我的子查询可以返回 NULL 作为 transactiondetails 并且 CreateDate 字段需要具有有效值。
我当前的查询是这个:
UPDATE transactionsheaders H SET CreateDate =
CONCAT(
DATE((SELECT CreateDate FROM transactionsdetails WHERE TransactionUID=H.UID GROUP BY TransactionUID)),
' ',
TIME(CreateDate))
WHERE UID>0;
我想使用的结果
SELECT CreateDate FROM transactionsdetails WHERE TransactionUID=H.UID GROUP BY TransactionUID
如果它不是NULL和DATE(CreateDate)否则。
我一直在尝试为此目的使用IF,但是我在编写有效的东西时遇到了问题......
还有一件事,transactiondetails通过TransactionUID(1 到多个)引用transactionsheaders 。GROUP BY是否保证只返回一个结果?