SQL查询,从另一个表的列中插入最大值

时间:2015-08-04 12:51:52

标签: mysql

我有两张桌子,一张预订表和一张发票表。我正在尝试使用预订信息更新预订表,并从发票表中获取最大值,并同时将其插入预订表。

到目前为止,我有这个,但它没有为Booking.Invoice_id列设置任何值

      INSERT INTO Booking( user_id, Location_id, Accom_Id,StartDate,EndDate,
          Vehreg,PartySize,Invoice_id )
      VALUES ('$User_id', '$pitch', '$Accom' , '$start',
          '$end','$Vreg','$guests','SELECT Max Invoice_id FROM Invoice;');

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:1)

使用insert . . . select

  INSERT INTO Booking(user_id, Location_id, Accom_Id, StartDate, EndDate,
                      Vehreg, PartySize, Invoice_id )
     SELECT '$User_id', '$pitch', '$Accom' , '$start', 
            '$end', '$Vreg', ' $guests',
            MAX(Invoice_ID)
     FROM Invoice;

但我的猜测是,您希望在向Invoice中插入一行后立即运行此功能。在这种情况下,您应该使用LAST_INSERT_ID()