View Full Version : انتقال اطلاعات از یک جدول به جدول دیگر
akbar_online
یک شنبه 01 شهریور 1388, 13:41 عصر
چطوری اطلاعات را ازجدول اول به جدول دوم انتقال بدم به شرطی که اطلاعاتی را که هم درجدول اول وهمینطور در جدول دوم قرار دارد وارد نشود.
محمد سلیم آبادی
یک شنبه 01 شهریور 1388, 13:51 عصر
سلام،
الگوریتم حل این مساله به این شکل است:
ابتدا اشتراکهای بین دو جدول را بدست می آورید سپس سطر های بدست آمده را از جدول دوم تفاضل می کنید سپس نتیجه حاصله را در جدول اول درج می کنید.
INSERT INTO t1
SELECT * FROM t2
EXCEPT
(
SELECT * FROM t1
INTERSECT
SELECT * FROM t2
);
MOJTABAATEFEH
یک شنبه 01 شهریور 1388, 14:08 عصر
درست متوجه سؤالت نشدم ولي فكر كنم تا حدودي منظورت رو فهميدم
با دستور insert معمولي مي توني اين كار را انجام بدي البته با يك شرط هم در كنارش
insert into table2 (field1,field2,......) select field1,field2,...... from table1 where field1 not in (select field1 from table2)
موفق باشي
akbar_online
یک شنبه 01 شهریور 1388, 14:25 عصر
درست متوجه سؤالت نشدم ولي فكر كنم تا حدودي منظورت رو فهميدم
با دستور insert معمولي مي توني اين كار را انجام بدي البته با يك شرط هم در كنارش
insert into table2 (field1,field2,......) select field1,field2,...... from table1 where field1 not in (select field1 from table2)
موفق باشي
اگر بخوام field2هم تو شرط باشه چطوری می شه یعنی field1,field2 مساوی نداشته باشه
علیرضا مداح
یک شنبه 01 شهریور 1388, 16:43 عصر
سلام دوست عزیز،
در SQL Server 2008 می توانید از دستور MERGE برای اینکار بهره بگیرید،/
akbar_online
یک شنبه 01 شهریور 1388, 18:33 عصر
به عکس های زیر دقت کنید من می خوام که وقتی کوئری را هربار اجرا می کنم اطلاعات قبلی تکرار نشه
http://h1.ripway.com/fakbar/1.jpg
http://h1.ripway.com/fakbar/3.jpg
http://h1.ripway.com/fakbar/2.jpg
محمد سلیم آبادی
یک شنبه 01 شهریور 1388, 18:46 عصر
این را امتحان کن و نتیجه را پست کنید
INSERT INTO Users
(Nroom, price)
SELECT Nroom, price
FROM form
WHERE time1<=CONVERT(varchar(50), getdate(),(180))
EXCEPT
(
SELECT Nroom, price FROM form
INTERSECT
SELECT Nroom, price FROM Users
);
akbar_online
چهارشنبه 04 شهریور 1388, 19:58 عصر
این را امتحان کن و نتیجه را پست کنید
INSERT INTO Users
(Nroom, price)
SELECT Nroom, price
FROM form
WHERE time1<=CONVERT(varchar(50), getdate(),(180))
EXCEPT
(
SELECT Nroom, price FROM form
INTERSECT
SELECT Nroom, price FROM Users
);
چطوری یک سری اطلاعات را از یک جدول ویک سری دیگه اطلاعاتش به دلخواه وارد کنیم
محمد سلیم آبادی
چهارشنبه 04 شهریور 1388, 20:21 عصر
چطوری یک سری اطلاعات را از یک جدول ویک سری دیگه اطلاعاتش به دلخواه وارد کنیم
امکان دارد کمی بیشتر توضیح دهید و دقیقا مشکلتان را مطرح کنید، حد اقل یک مثال بیان کنید.
akbar_online
چهارشنبه 04 شهریور 1388, 21:42 عصر
امکان دارد کمی بیشتر توضیح دهید و دقیقا مشکلتان را مطرح کنید، حد اقل یک مثال بیان کنید.
یک کوئری می خوام که یکسری ازفیلدهای جدول از یک جدول دیگه insert کنه یک سری دیگه از فیلدها را خودم تو کوئری بدم
محمد سلیم آبادی
چهارشنبه 04 شهریور 1388, 22:26 عصر
منظورتان از فیلد آیا ستون است؟ یا اینکه سطر است؟
اگر ستون باشد اولین فکری که به ذهن می رسد join است. و اگر سطر است اولین فکری که به ذهن می رسد union است.
akbar_online
چهارشنبه 04 شهریور 1388, 23:32 عصر
منظورتان از فیلد آیا ستون است؟ یا اینکه سطر است؟
اگر ستون باشد اولین فکری که به ذهن می رسد join است. و اگر سطر است اولین فکری که به ذهن می رسد union است.
سطر می باشد
محمد سلیم آبادی
یک شنبه 15 شهریور 1388, 16:59 عصر
به عکس های زیر دقت کنید من می خوام که وقتی کوئری را هربار اجرا می کنم اطلاعات قبلی تکرار نشه
اگر از SQL Server 2008 استفاده می کنید این روش کارایی بالاتری دارد:
merge into users as t
using (select nroom, price from form
WHERE time1<=CONVERT(varchar(50), getdate(),(180))) as u
on t.nroom=u.nroom and t.price=u.price
when not matched then
insert (nroom, price)
values(u.nroom, u.price);
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.