Mysql根据其他表中的ID和字段向表中添加一行

时间:2014-07-16 17:02:31

标签: mysql insert

我有一个名为item_texts的表

id|rec_id|text
-----------------
1 |21    |point(123
2 |21    |nothing
3 |91    |empty
4 |2     |point(123
5 |500   |point(123

和一个名为tags

的表
id|tag_id|rec_id
----------------------
1 |1     |34
2 |2     |34
3 |34    |21
4 |1     |2867

这些基本上都是查找表,第一个是为记录分配文本,第二个是为记录分配标签。

基本上对于每个包含POINT等文本的项目,我想在标签数据库中添加一条记录,其中包含该项记录ID和标签ID 45 ..

所以它通过item_texts表,使用上面的例子rec_id 21,2,500找到一个带有点为文本的项目。然后将id为45的标签插入到tags表中,并带有记录ID从文本表中。所以我最终得到了一个看起来像这样的标签表。

id|tag_id|rec_id
----------------------
1 |1     |34
2 |2     |34
3 |34    |21
4 |1     |2867
5 |45    |21
6 |45    |2
7 |45    |500

我可以选择表格中的项目

  SELECT * FROM `item_texts` WHERE `text` LIKE 'POINT%'

我可以进行插入查询       INSERT INTO标签值('',45,21) 我只是不确定如何将它们绑在一起所以插入中的21来自每个在select语句中匹配的项目

1 个答案:

答案 0 :(得分:1)

以下应该这样做。

INSERT INTO tags (tag_id,rec_id)
SELECT 45, rec_id FROM `item_texts` WHERE `text` LIKE 'POINT%'