ورود

View Full Version : سوال: در مورد انواع JOIN در Mysql



persian_farvahar
چهارشنبه 08 آبان 1387, 12:53 عصر
سلام دوستان
ميخواستم بدونم اينايي كه من خودم از اين JOIN ها فهميدم درسته؟
سرچ كردم ولي چون منابع فارسي براي انها وجود نداره يا اگه باشه خيلي مبهمه.
تو منابع انگليسي يه چيزايي دستم اومد ولي ميخوام مطمئن بشم اونايي كه فهميدم درسته يا نه؟
1-فرق بين LEFT JOIN با RIGHT JOIN چيه؟
2-فرق بين NATURAL JOIN با LEFT JOIN چيه؟
3-فرق بين INNER JOIN با NATURAL JOIN چيه؟
4-فرق بين INNER JOIN با LEFT JOIN چيه؟
5-فرق بين شرط ON با USING() ؟

اگه ميشه توضيحاتو همراه با مثال بگيد (مثال زياد مهم نيست ولي بزنيد بهتره)
در آخر هم يه توضيح هم در مورد NUTURAL JOIN و ‍CROSS JOIN ميخواستم بهم بدين.

persian_farvahar
پنج شنبه 09 آبان 1387, 23:38 عصر
نميدونم سوالم خيلي سخت بود
2روزه سوال كردم كسي جواب نداده
انگار بايد خودم بايد توضيحات رو بدم:شكلك چشمك

payamsalami
یک شنبه 12 آبان 1387, 08:44 صبح
یکی جواب این موضوع رو بده منم نمی دونم

persian_farvahar
یک شنبه 12 آبان 1387, 08:57 صبح
اومدم ديدم يكي پست زده تو تاپيك گفتم الانه كه جواب دادن
مثل اينكه مديران اين بخش بيخيال سوالات ما شدن


یکی جواب این موضوع رو بده منم نمی دونم
مثل اينكه بايد خودم دست به كار بشم(جواب خودمو خودم بدم:افسرده:)
ولي ميترسم بنويسم باز يكي كه وارد تره نياد جواب بده من باز تو همون گيج زدن بمونم

bahram90833
یک شنبه 12 آبان 1387, 23:06 عصر
کمک
سلام. من به برنامه ای احتاج دارم که بتونه حدود 3000 کلمه را در بانک خودش داشته باشه. و امکان جستجو وجود داشته باشه. مثلا ببینیم فلان کلمه آیا در بانک وجود داره با نه.
فقط همین. خواستم بدونم باید چکار کنم؟ برنامه خاصی هست ؟
لطفا مرا راهنمایی کنید که خیلی احتیاج دارم.
janibahram@yahoo.com

vahid4134
دوشنبه 13 آبان 1387, 08:01 صبح
سلام دوستان
ميخواستم بدونم اينايي كه من خودم از اين JOIN ها فهميدم درسته؟
سرچ كردم ولي چون منابع فارسي براي انها وجود نداره يا اگه باشه خيلي مبهمه.
تو منابع انگليسي يه چيزايي دستم اومد ولي ميخوام مطمئن بشم اونايي كه فهميدم درسته يا نه؟
1-فرق بين LEFT JOIN با RIGHT JOIN چيه؟
2-فرق بين NATURAL JOIN با LEFT JOIN چيه؟
3-فرق بين INNER JOIN با NATURAL JOIN چيه؟
4-فرق بين INNER JOIN با LEFT JOIN چيه؟
5-فرق بين شرط ON با USING() ؟

اگه ميشه توضيحاتو همراه با مثال بگيد (مثال زياد مهم نيست ولي بزنيد بهتره)
در آخر هم يه توضيح هم در مورد NUTURAL JOIN و ‍CROSS JOIN ميخواستم بهم بدين.
تفاوت اینها رو اگر بخوایید بدونید باید دو سه صفحه ای توضیخ داده بشه
توی کتاب mysql در 29 روز (روزش رو یادم نمیاد چند روز بود:خجالت:) این ها رو به خوبی توضیح داده
http://dev.mysql.com/doc/refman/5.0/en/join.html

persian_farvahar
دوشنبه 13 آبان 1387, 18:01 عصر
تفاوت اینها رو اگر بخوایید بدونید باید دو سه صفحه ای توضیخ داده بشه
توی کتاب mysql در 29 روز (روزش رو یادم نمیاد چند روز بود:خجالت:) این ها رو به خوبی توضیح داده
http://dev.mysql.com/doc/refman/5.0/en/join.htm (http://dev.mysql.com/doc/refman/5.0/en/join.html)
ممنون
دارمش اسمش هم mysql در 21 روزه
من خوندم به غير از اونم چند تا ديگه هم خوندم ولي به خاطر اين زياد خوندنا حالا قاطي كردم از اينرو(چه كتابي حرف ميزنم) گفتم بيام اينجا مطرح كنم ببينم اون چيزايي كه از فرق اينها فهميدم درسته يا نه؟
حالا من هم نميخوام مفصل توضيح بديد يه اشاره كوچك كنيد ميفهمم(به خاطر همون دليل).

notelo
چهارشنبه 15 آبان 1387, 11:18 صبح
سلام
اکثر اختلافات این ها بر میگرده به پدر و فرزند بودن جداولی که روشون join میزنی
پدر به جدولی میگن که سمت چپ join و فرزند به جدولی میگن که سمت راست باشه
حالا میشه توضیح داد که فرق join ها در چیست....
right join : تمام فیلدهای فرزند چه پدرش موجود باشه چه نه نمایش داده می شه اما فیلدهای پدر حتما باید فیلد فرزندان آن موجود باشه تا نمایش داده بشه:خجالت:
left join : مثل right join که جای پدر و پسرو عوض کنی:لبخند:
inner join : حتما باید هم مقادیر پدر موجود باشد هم مقادیر فرزند
Outer join : الزامی به بودن مقادیر هیچ کدام از جداول نیست و همه را نمایش می دهد :قهقهه:
امیدوارم به دردتون بخوره

notelo
چهارشنبه 15 آبان 1387, 11:25 صبح
:قهقهه: راستی یادم رفت در مورد cross join بگم
cross join : اکثرا برای تهیه ی چک لیست استفاده میشه
مثلا زمانی که دوتا جدول یکی دانشجو و یکی دروس داشته باشی و بخوایی چک لیستی از این دو جدول داشته باشی میری سراغ cross join
برای تهیه گزارش که اسم دانشجو (برای هر دانشجو به طور مجزا) بعد تمام درسای جدول دروس جلوی اسم دانشجو. حالا همه رو پرینت میگیری تا بدا جولوی هر کودوم که خواستی تیک بزنی به این میگن چک لیست
امیدوارم تونسته باشم کمکی کنم:چشمک:

persian_farvahar
چهارشنبه 15 آبان 1387, 17:00 عصر
ممنون دوست عزيز اينا همونايي بود كه توشون شك داشتم ولي هنوز اين برام سواله كه آيا فرزند خودش هم ميتونه پدر باشه يا پدر هم ميتونه فرزند يكي ديگه باشه(منظورم اينه كه اينجا هم خاصيت درخت وجود داره يا نه) يا اينكه فقط پدر بايد يكي باشه؟
inner join : حتما باید هم مقادیر پدر موجود باشد هم مقادیر فرزند پس هر دو جدول بايد وجود داشته باشن يعني تو هيچ كدوم نبايد NULL‌ وجود داشته باشه درسته؟ يه توضيح كوچولو هم در مورد NUTIRAL JOIN وشزط ON وUSING ميدين؟ باز هم ممنون

notelo
جمعه 17 آبان 1387, 10:45 صبح
سلام
در مورد سوالتون که هر دو جدول باید موجود باشن رو پرسیدین بله درسته نباید NULL باشن
چرا یه جدول خودش هم می تونه فرزند باشه هم پدر که من به این میگم self join که خیلی کار آمده!
در مورد NUTIRAL JOIN من اطلاعات خاصی ندارم خوشحال میشم منم یاد بگیرم
البته این رو بگم که من رو sql server 2005 تسلط دارم نه mysql