Ben diğer tablo için birincil kimliği almak gerekiyorsa, eklemek nasıl

2 Cevap php
SELECT * FROM tableFoo
LEFT JOIN tableBar ON tableFoo.commonColumn = tableBar.commonColumn
WHERE tableBar.commonColumn IS NULL

Above will select records, I would like to insert Code below will insert id to third 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

Nasıl bu kadar birleştirmek mi? Thx

Yine, ben tohether bu sorguları birleştirmek nasıl, burada bu not eklemek. Ilk sorgu dahil hepsi, (SELECT * ....)

Something like this: SELECT records, then insert them, and also insert this....

2 Cevap

Eğer php kullanarak konum eğer sadece arasındaki mysql_insert_id iki querys () yapabilirsiniz

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: Yorumlarınız - üzgünüm, toplam cevapsız, bu size 3 sorguları çalıştırmak gerekir böylece

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

i tableFoo ve tableBar sizin alanların isimleri ne olduğunu bilmek, bu yüzden sadece bu isimler ile linkfield / aliasfield / catidfield yerine geçmez.