PDA

View Full Version : وارد کردن اطلاعات از یک جدول به یک جدول دیگر



saeedvir
چهارشنبه 18 تیر 1393, 12:23 عصر
سلام دوستان،

یک جدول داریم با اطلاعاتی نزدیک به 25000 سطر که شامل 10 ستون که می خواهیم سه ستون A,B,C را به جدول دیگر وارد کنیم با شرط اینکه هر فیلد از ستون A و هر فیلد ستون C نباید با هر فیلد از ستون A و هر فیلد ستون C جدول دوم برابر باشد.


من از کد کوئری زیر استفاده کردم ولی هم خیلی طول میکشه و هم بعضی مواقع جواب نمیده :


INSERT INTO `tbluserinfo` (`usern`,`passw`,`nesbat`)
SELECT `tb2`.`codepersoneli`, `tb2`.`shnum`,`tb2`.`nesbat` FROM `tb2`,`tbluserinfo` WHERE `tbluserinfo`.`usern` != `tb2`.`codepersoneli`;


میشه کمکم کنید!:لبخند:

prans.info
چهارشنبه 18 تیر 1393, 12:37 عصر
از چرخه + شرط استفاده کن ...

مهرداد سیف زاده
چهارشنبه 18 تیر 1393, 13:26 عصر
من یه بار همچین کاری کردم البته بهترین راهی رو که به ذهنم میرسید رو اجرا کردم بازم باید دوستان نظر بدن

در ابتدا یک view از داده های مورد نیاز برای ذخیره در تیبل دوم ساختم که برای شما view به شکل زیر در میاد

create view `infuser` AS select distinct `tb2`.`codepersoneli` AS `codepersoneli`,`tb2`.`shnum` AS `shnum`,`tb2`.`nesbat` AS `nesbat` from (`tb2` join `tbluserinfo`) where (`tbluserinfo`.`usern` <> `tb2`.`codepersoneli`)

بعد در php داده ها رو استخراج و در تیبل دوم ریختم البته نه اینکه 2500 باز دستور insert بدم بلکه همه داده ها رو با یک دستور insert. این کار رو ایجاد حلقه از داده های برداشت شده و ذخیره دستور insert آنها بصورت گروهی و بعد دادن یک دستور insert برای mysql که برای شما به صورت زیر در میاد

$row = "select * from `infuser`";

$sqlArr = array();
foreach($row as $k=>$v)
{
$ins = "('{$row[1]}','{$row[2]}','{$row[3]}')";
array_push($sqlArr,$ins);
}


$query = "insert into tbluserinfo (`usern`,`passw`,`nesbat`) values".implode(',',$sqlArr);


mysql_query($sql);