在已连接的表中插入固定值

时间:2014-02-04 07:03:58

标签: mysql sql sql-insert

这就是我想要做的。

我有一个名为“software”的空表,其中包含:key,computerID和softwarename。我有一个名为“设备”的第二个表(其中包含设备ID和项目类型),它有数千个项目,其中只有一些是计算机(所以我试图过滤“itemtype = computer”)

   key|itemID      |itemname     |otherstuff
    1  |4533       |television   |blah, blah
    1  |3823       |computer     |blah, blah
    1  |1111       |couch        |blah, blah
    1  |3423       |computer     |blah, blah
    1  |1234       |computer     |blah, blah
    1  |9999       |couch        |blah, blah
    1  |8823       |computer     |blah, blah

我想用所有计算机(computerID)和一个固定名称(比如“Windows”)填充“软件”表,以便最后我有这样的东西。

key|computerID |softwarename
1  |3823       |Windows
2  |3423       |Windows
3  |1234       |Windows
4  |3126       |Windows
5  |8823       |Windows

等...列表中的1000台计算机中的每台计算机。然后,我会为每台计算机上的其他软件运行它几次。

我能找到的所有例子都指向我从另一个连接表插入行,这不是我想要做的。

在切线上,是否有一个非常好的资源可以提供不同SQL查询和解释的示例?我真的很想独立处理硬查询。

谢谢!

2 个答案:

答案 0 :(得分:2)

您可以使用INSERT ... SELECT,但SELECT中的一列是常量。

INSERT INTO software (computerID, softwarename)
  SELECT itemID, "Windows"
    FROM equipment
    WHERE itemname='Computer'
;

答案 1 :(得分:0)

如果您不想从另一个表中插入行,那么您可以试试这个 对于MySQL

SELECT @i:=@i+1  As 'Key', equipmentID as computerID, 'Windows' as softwarename
FROM equipment
WHERE itemtype='computer'