INSERT INTO表SELECT&附加一列

时间:2017-09-04 13:50:31

标签: mysql sql sqlite

看看我的问题:

INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration
    FROM activeSessions
    WHERE workstationId = ?

select语句不包含足以推送到sessions的数据。我也想插入一个actionType(作为参数(?)。也就是说,我需要在select语句的结果右侧附加一列,以便它能够工作。如何完成?

2 个答案:

答案 0 :(得分:1)

您可以在mysql select:

中使用虚拟值
INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration, 'actionType' as actionType
    FROM activeSessions
    WHERE workstationId = ?

对于不同的参数,您还可以使用select select select query。

INSERT INTO sessions (userId, workstationId, duration, actionType)
        SELECT userId, workstationId, duration, 
        (select id from actionTypeTable where id = ?) as actionType
        FROM activeSessions
        WHERE workstationId = ?

答案 1 :(得分:1)

假设您的查询位于某个过程中,您可以添加这些参数。

INSERT INTO sessions (userId, workstationId, duration, actionType)
    SELECT userId, workstationId, duration, @actionType
    FROM activeSessions
    WHERE workstationId = @workstationId