I have 4 tables: tempTBL, linksTBL and categoryTBL, extra
在我的tempTBL上我有:ID,name,url,cat,isinserted columns 在我的linksTBL我有:ID,名称,别名列 在我的categoryTBL上我有:cl_id,link_id,cat_id 在我的extraTBL上我有:id,link_id,value
如何执行单个查询以从tempTBL中选择isinsrted = 0的所有项目,然后将它们插入到linksTBL和插入的每个记录,拾取ID(主要),然后使用cat_id = 88将该ID插入categoryTBL。之后,为link_id插入extraTBL ID,为值插入url。
我知道这太令人困惑了,无论如何我都会发布这个......
这是我到目前为止所做的:
INSERT IGNORE INTO linksTBL (link_id,link_name,alias)
VALUES(NULL,'tex2','hello'); # generate ID by inserting NULL
INSERT INTO categoryTBL(link_id,cat_id) VALUES(LAST_INSERT_ID(), '88'); #在第二个表中使用ID
我想在这里添加它只选择isinserted = 0和iserts这些记录的项目,并且插入onse,将更改isinserted为1,所以当下次运行时,它不会再添加它们。
答案 0 :(得分:1)
正如longneck所说,你不能在一个查询中做多个事情,但你可以在一个存储过程中。
答案 1 :(得分:1)
http://dev.mysql.com/doc/refman/5.1/en/insert-select.html
INSERT INTO linksTBL (link_id,link_name,alias)
SELECT field1, field2, field3
FROM othertable
WHERE inserted=0;
答案 2 :(得分:0)
在单个查询中无法做到这一点。您必须插入行,然后运行单独的更新语句。