2009-10-22 51 views
0
SELECT * FROM tableFoo 
LEFT JOIN tableBar ON tableFoo.commonColumn = tableBar.commonColumn 
WHERE tableBar.commonColumn IS NULL 

上面會選擇記錄,我想下面插入 代碼將插入ID來第三個表。如何插入,如果我需要拿起主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 * ....)

事情是這樣的: 選擇記錄,然後將它們插入,並插入此....

+0

第二個查詢有VALUES,這將來自我的第一個查詢(SELECT部分​​....)我知道這是一個小混亂的問題... – Ossi

回答

4

你可以做兩個querys在重新

之間
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."')"); 

mysql_insert_id()評論 - 對不起,總錯過了,所以你需要運行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']."')"); 

我不知道什麼名字o f在tableFoo和tableBar中的字段,只需用這些名稱替換linkfield/aliasfield/catidfield即可。

+0

這是哪裏的選擇部分?我在哪裏添加? 我看我是如何誤導我自己的問題的...... 基本上,VALUES來自我的第一個查詢......那麼我該如何結合呢? – Ossi

相關問題