如何手动将值以及从一个表中选择的值同时插入到另一个表中?

时间:2018-11-19 03:53:25

标签: php mysql android-studio phpmyadmin

在这里,我正在这样做,而不是获得CustomerID的MAX值,而是得到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)');

1 个答案:

答案 0 :(得分:0)

您可以使用INSERT INTO .. SELECT语句。对于输入变量值,我们可以将SELECTCustomerID表中的CustomerData的最大值一起使用:

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