PDA

View Full Version : join کردن جداول در sql 2008



rasoulbarname
شنبه 21 مرداد 1391, 11:49 صبح
با عرض سلام وادب خدمت مدیر سایت وبقیه دوستان برنامه نویس
من در پایگاه داده پروژه ام که با sql 2008 طراحی شده تقریبا ده تا جدول دارم و وقتی با دوستان مشورت کردم برای گرفتن خروجی از ان باید جداول را در دو مرحله join کنم که در هر مرحله هم تقریبا 5 یا 6 تا جدول داریم از چه دستوراتی میتوانم استفاده کنم؟ :متفکر:
من زیاد با join کردن اشنا نیستم میشه لطف کنید کامل توضیح بدید مرسی :لبخندساده::چشمک:

baktash.n81@gmail.com
یک شنبه 22 مرداد 1391, 09:16 صبح
سلام

دوست عزیز شما می تونید SSMS رو بازکنید ... بعد از منوی Query گزینه Query Designer رو انتخاب کنید ... فیلدهایی که باهم ارتباط دارن رو به هم وصل کنید ... اونم کدش رو براتون میسازه ...

rasoulbarname
دوشنبه 23 مرداد 1391, 06:24 صبح
سلام

دوست عزیز شما می تونید SSMS رو بازکنید ... بعد از منوی Query گزینه Query Designer رو انتخاب کنید ... فیلدهایی که باهم ارتباط دارن رو به هم وصل کنید ... اونم کدش رو براتون میسازه ...

سلام ممنون از توجهتون
ببخشید این ssms تو چه برنامه ای وکجاست؟

baktash.n81@gmail.com
دوشنبه 23 مرداد 1391, 07:53 صبح
اگه SQL 2008 دارید توی Run بنویسید ssms ... منظور همون Managment Studio هست ... که هنگام نصب SQL روی سیستمتون نصب می شه ...

rasoulbarname
دوشنبه 23 مرداد 1391, 11:55 صبح
اگه SQL 2008 دارید توی Run بنویسید ssms ... منظور همون Managment Studio هست ... که هنگام نصب SQL روی سیستمتون نصب می شه ...
سلام دوست عزیز
1)بله متوجه شدم ، فقط من کوئری رو همیشه خودم می نویسم با محیط query designer زیاد کار نکردم میشه لطف کنید بیشتر توضیح بدید ؟کجا باید رابطه ها رو مشخص کنم

2)من یه کوئری join خودم نوشتم و در ابتدای کوئری insert to table گذاشتم وهمه نتایج روبه یک جدول فرستاد ولی فقط با هر بار اجرا ی این کوئری ،نتیجه را در ادامه ی نتایج قبلی میریزد وبسیاری از انها تکراری است چه کدی بنویسم که نتایج تکراری را دوباره به پایگاه داده ها نفرسته ؟

rasoulbarname
دوشنبه 23 مرداد 1391, 19:18 عصر
مثلا من دو جدول دارم به نام های
personnel = با فیلدهای ,...,family,name , (کد مدرسه)id , idm
profile= با فیلدهای idm, addres,name , tell
که با کد زیر join کردم ونتیجه را به جدول temp فرستادم ولی با هر بار اجرای کوئری نتایج تکراری را هم دوباره به جدول میفرستد
Insert into temp
select p.*,pr.address from personnel as p
inner join profile as pr on p.idm=pr.idm
سوال
1) کدی میخواهم که افرادی که id,idm انها تکراری است ودر جدول temp قرار دارند را به جدول نفرستد
2)کدی میخواهم که جدول temp را آپ دیت کند نه اینکه نتایج را پشت سر نتایج قبلی بنویسد
برای این دوسوال دوکد جداگانه میخواهم
لطفا اگر زحمتی نیست این سوال وسوال قبلی ام را باهم جواب بدید یه دنیا ممنونم

tooraj_azizi_1035
چهارشنبه 08 شهریور 1391, 20:30 عصر
آشنایی با Join:
http://www.farsimsdn.somee.com/default.aspx?id=80

m0hammad_01
پنج شنبه 09 شهریور 1391, 01:35 صبح
واسه Inner Join ی که شما انجام میدی نیازی نیست نتیجش رو تو یه جدول Temp بریزی. دستور SELECT ی که استفاده کردی، این دو جدول را ضرب کرده و نتیجه را در جدولی مجازی که توسط SQL SERVER ایجاد میشه میریزه. شما با خروجی دستور SELECT که همون جدول مجازی هست کار داری.