2017-09-04 56 views
-1

看看我的查询:INSERT INTO表选择并追加列

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

select语句不包含足够的数据来推入sessions。我想插入一个actionType(作为一个参数(?)。也就是说,我需要在select语句的结果右边追加一列以使其工作。这是怎么完成的?

+0

相同的操作类型,还是不同? – jarlh

+0

@jarlh每次都不一样。我希望这是一个参数 – Zarkopafilis

回答

1

您可以使用MySQL的虚值选择:

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

对于不同的参数,你也可以使用选择内选择查询

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

OP需要不同的actionType值作为参数。 – jarlh

+0

谢谢!一旦时限结束,我们会尽快接受。我想我可以设置它作为参数? – Zarkopafilis

+0

@Zarkopafilis,你说“每次都不一样,我希望这是一个参数”...... – jarlh

1

假设你的查询驻留在一个过程中,您可以添加这些参数。

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