在这里,我这样做,而不是得到CustomerID的最大值,我得到的是0。
我的CustomerData表:
Columns
1 CustomerID
2 Name
3 PhoneNumber
4 Address
我的OrderTable1表
Columns
1 OrderID
2 TableID
3 OrderDate
4 OrderStatus
5 OrderDesc
6 CustomerID
INSERT INTO OrderTable1 (OrderDate,OrderStatus,OrderDesc,CustomerID)
VALUES ('$LenthOfService','$Quantity','$ItemName','(SELECT MAX(CustomerID) FROM CustomerData)');
发布于 2018-11-19 11:57:00
您可以使用INSERT INTO .. SELECT
语句。对于输入变量值,我们可以将它们与来自CustomerData
表的CustomerID
的最大值一起SELECT
:
INSERT INTO OrderTable1 (OrderDate,OrderStatus,OrderDesc,CustomerID)
SELECT MAX('$LenthOfService') AS OrderDate,
MAX('$Quantity') AS OrderStatus,
MAX('$ItemName') AS OrderDesc,
MAX(CustomerID) AS CustomerID
FROM CustomerData
为了符合ANSI SQL,我们需要在变量值周围使用Max()
函数。更多详情请访问:SELECT list is not in GROUP BY clause and contains nonaggregated column .... incompatible with sql_mode=only_full_group_by
而且,您似乎没有使用参数化查询。在这种情况下,您的代码将容易受到与SQL injection相关的攻击。请学习使用Prepared Statements
https://stackoverflow.com/questions/53368089
复制相似问题