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

Au-dessus sélectionnera les dossiers, je voudrais insérer code ci-dessous insérera id troisième table.Comment insérer, si je dois ramasser id primaire pour autre table

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 

Comment les combiner aussi? Thx

Encore une fois, j'ajoute cette note ici, comment puis-je combiner ces requêtes à l'intérieur. Tous, y compris la première requête (SELECT * ....)

Quelque chose comme ceci: SELECT enregistrements, puis les insérer et insérez également cette ....

+0

La deuxième requête a des VALEURS, qui proviendraient de ma première requête (SELECT partie ....) Je sais que c'est une petite question déroutante ... – Ossi

Répondre

4

si vous utilisez PHP, vous pouvez juste faire deux querys avec mysql_insert_id() entre

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: commenter - désolé, au total manqué que , donc vous devez exécuter 3 requêtes

$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']."')"); 

je ne sais pas quels sont les noms o f vos champs dans tableFoo et tableBar, il suffit donc de remplacer linkfield/aliasfield/catidfield par ces noms.

+0

Où est la partie sélectionnée pour cela? Où puis-je ajouter cela? Je vois comment je trompe ma propre question ... Fondamentalement VALUES vient de ma première requête ... alors comment puis-je combiner cela? – Ossi

Questions connexes