需要MySQL查询的帮助,似乎无法弄清楚如何正确编写这个语句。我试图在一个插入语句中嵌入一个select,并且还使用了ifnull。
INSERT INTO vo (vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES (NULL, '3', (SELECT IFNULL(max(serial_no),1) FROM vo WHERE agreement_id = '3'), CURDATE(), 'Open')
任何帮助表示赞赏! 谢谢!
编辑:我在mysql中遇到的错误是:#1093 - 您无法在FROM子句中指定目标表'vo'进行更新
答案 0 :(得分:1)
您可以通过将子查询包装在没有WHERE
子句的另一个子查询中来消除此错误:
INSERT INTO vo
(vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES
(NULL, '3', (SELECT x.*
FROM (SELECT IFNULL(max(serial_no),1)
FROM vo
WHERE agreement_id = '3'
) x), CURDATE(), 'Open')
答案 1 :(得分:1)
试试这个
INSERT INTO vo (vo_id, agreement_id, serial_no, vo_date, vo_status)
VALUES (NULL, '3', (SELECT * from (SELECT IFNULL(max(serial_no),1) FROM vo WHERE agreement_id = '3')t), CURDATE(), 'Open')