SELECT * FROM tableFoo
LEFT JOIN tableBar ON tableFoo.commonColumn = tableBar.commonColumn
WHERE tableBar.commonColumn IS NULL
上面会选择记录,我想插入 下面的代码会将id插入第三个表。
INSERT IGNORE INTO jos_mt_links (link_id,link_name,alias)
VALUES(NULL,'tex2','hello'); # generate ID by inserting NULL
INSERT INTO jos_mt_cl (link_id,cat_id)
VALUES(LAST_INSERT_ID(),'88'); # use ID in second table
我如何组合这些呢? THX
同样,我在这里添加了这个注释,如何将这些查询组合起来。所有这些,包括第一个查询(SELECT * ....)
这样的事情: SELECT记录,然后插入它们,并插入....
答案 0 :(得分:4)
如果你正在使用php,你可以在两个查询之间使用mysql_insert_id()
mysql_query("INSERT IGNORE INTO jos_mt_links (link_id,link_name,alias)
VALUES(NULL,'tex2','hello')");
$newid=mysql_insert_id();
mysql_query("INSERT INTO jos_mt_cl (link_id,cat_id)
VALUES(LAST_INSERT_ID(),'".$newid."')");
re:评论 - 抱歉,总错过了,所以你需要运行3个查询
$result=mysql_query("SELECT * FROM tableFoo LEFT JOIN tableBar ON tableFoo.commonColumn = tableBar.commonColumn WHERE tableBar.commonColumn IS NULL");
$row=mysql_fetch_assoc($result);
mysql_query("INSERT IGNORE INTO jos_mt_links (link_id,link_name,alias)
VALUES(NULL,'".$row['linkfield']."','".$row['aliasfield']."')");
mysql_query("INSERT INTO jos_mt_cl (link_id,cat_id)
VALUES(LAST_INSERT_ID(),'".$row['catidfield']."')");
我不知道tableFoo和tableBar中字段的名称是什么,所以只需用这些名称替换linkfield / aliasfield / catidfield。
答案 1 :(得分:0)