我有两个mysql表,它们都有一个共同的typeID。我想从这两个表中选择具有相同typeID的所有内容,查询如下:
SELECT ta.requiredTypeID, ta.typeID, ta.quantity
FROM `invtypes` as t, `typeactivitymaterials` as ta
WHERE volume > 0 AND t.typeID = ta.typeID;
这给出了正确的结果,但我尝试将此查询导出为insert语句。我尝试在OUTFILE中添加"/path/“,但这只将数据导出为制表符/逗号分隔的数据,是否可以将此数据导出为insert语句?
干杯
Eef
发布于 2010-09-24 20:18:03
您可以将INSERT与SELECT结合使用,以直接从select语句的结果插入记录。
你这样做是这样的:
INSERT INTO newtable (requiredTypeID, typeID, quantity)
SELECT ta.requiredTypeID, ta.typeID, ta.quantity
FROM `invtypes` as t, `typeactivitymaterials` as ta
WHERE volume > 0 AND t.typeID = ta.typeID;
这里有一个相关MySQL manual page的链接。
请注意,这实际上会立即执行插入操作;它不会完成您要求的操作(即生成insert语句以供稍后使用)。
发布于 2010-09-24 20:10:18
您也许可以改用mysqldump
。查看参数--tables
和--where=
。
发布于 2013-04-23 21:01:28
如果您有MySQL工作台,它可以为您生成insert语句。
在SQL编辑器中运行查询,然后从结果集中单击导出按钮。然后在"Save as Type“中选择as "SQL INSERT statements (*.sql)”。单击“保存”,确认要导出的表,然后单击“确定”。
如果打开该文件,您应该会看到结果集是带有列名的insert语句。
我只在一个简单的select * from表上进行了测试。我没有用多个表测试过这一点。我希望这能帮到你。
编辑:工作台似乎可用于Windows、OSX和Linux (感谢vcardillo)
https://stackoverflow.com/questions/3786820
复制相似问题