ورود

View Full Version : join کردن 2 جدول



irpersian20
سه شنبه 21 آذر 1391, 20:39 عصر
سلام
در جبر رابطه ای خوب ما 2 تا جدول رو join میکنیم وقتی نیاز به ارتباط بین این 2 جدول پیدا میکنیم
در sql کتابی بنده میخونم که اصلا دستور join رو توضیح نداده در قسمت sql .
و join رو فقط در جبر رابطه ای گفته

حالا سوال من اینه که آیا وقتی ما به 2 جدول نیاز درایم در sql
میزنیم مثلا نام را از 2 جدول برگردان ( برای مثال)
select name
from s,p
where S.s#=SPJ.s# a
a رو زدم که بیاد این رو جمله
حالا این با join فرق داره یا در اصل همان join هست و پاسخ فرقی نمیکنه؟ پس کی میریم سراغ join

مهدی هادیان2
پنج شنبه 23 آذر 1391, 07:53 صبح
بسم الله الرحمن الرحیم
با سلام
تفاوتش رو نمی دونم ولی اگه دو کوئری رو بنویسید
SELECT Cities.CityTitle,Provinces.ProvinceTitle
from Cities,Provinces
where Cities.ProvinceID=Provinces.ProvinceID

SELECT Cities.CityTitle,Provinces.ProvinceTitle
from Cities
inner join Provinces
on Cities.ProvinceID=Provinces.ProvinceID
و روی کوئری ها راست کلیک کنید و گزینه display estimated execution plan رو انتخاب کنید؛ خواهید دید که SQL پشت صحنه داره یک کار انجام می ده.
شاد و موفق باشید.

بهزاد علی محمدزاده
جمعه 24 آذر 1391, 14:18 عصر
سلام .

select name
from s,p
where S.s#=SPJ.s# a

با این کار ضرب دکارتی روی جدول ها اعمال میشه و تمام حالات ممکن رو بهت بر می گردونه و این یعنی کار اضافی و هزینه اش برای Database بالاست . اما با Join تکرار ها حذف میشه و بسیار بهینه تر از اولی خواهد بود .

دیگه من سر نخ و بهت دادم ، این مباحث و باید با دقت دنبال کرد . مثلا باید رفت دید ضرب دکارتی یعنی چی ؟ آیا ویدیو یا مطلبی پیدا میشه که بتونی مساله رو درک کنی ؟

به این میگن مطالعه عمیق و من آرزو دارم هر چه زودتر سنگینی درسهای دانشگاه تموم بشه و در این زمینه ها جدی مطالعه داشته باشم . پس اون دوستانی که معتقد هستند ما به ریاضیات احتیاج نداریم و فقط تابع فراخوانی می کنیم کجان که یه سری به این سوالات بزنن ببینیم بدون دانش ریاضی با این مسائل چطور برخورد کردن ؟

دوست من ، می بینی درک مفاهیم چقدر به بهینه عمل کردن سیستم کمک می کنه . برات آرزوی موفقیت دارم .

irpersian20
جمعه 24 آذر 1391, 14:23 عصر
سلام
اما ما where گذاشیم.
where S.s#=SPJ.s# a
و این دیگه ضرب دکارتی نمیکنه
درسته؟

بهزاد علی محمدزاده
جمعه 24 آذر 1391, 14:45 عصر
نه بازهم ضرب می کنه . اگر ضرب نشه پس چطوری ستون ها رو از دو جدول کنار هم قرار بده ؟

توی توضیحاتی که در ویکی پدیا اومده این دستور رو با join معادل دونسته . یه نگاه بنداز . لینک (http://en.wikipedia.org/wiki/Join_%28SQL%29)

من وقت نمی کنم کامل بخونم .

irpersian20
جمعه 24 آذر 1391, 23:14 عصر
پس اگر این طوری هست join هم چطوری میتونه 2 تا سون کنار هم بزاره؟