نمایش نتایج 1 تا 9 از 9

نام تاپیک: انواع JOIN در SQL (پایگاه داده ها)

  1. #1
    کاربر دائمی آواتار raha1234567
    تاریخ عضویت
    مرداد 1389
    سن
    26
    پست
    253
    تشکر کردن
    143
    105 بار تشکر شده در 28 پست

    انواع JOIN در SQL (پایگاه داده ها)

    Inner Join : در این روش سطرهایی نمایش داده می شوند که در هر دو جدولی که با هم Join شده اند وجود دارند. فرض کنید که دو جدول به نام titles و publishers داریم و می خواهیم برای هر title ، publisher آنرا تعیین کنیم. در اینصورت از Inner Join بصورت زیر استفاده می کنیم :

    SELECT title, pub_name
    FROM titles INNER JOIN
    publishers ON titles.pub_id = publishers.pub_id

    در اینصورت title هایی که publisher ندارند یا publisher هایی که title ندارند هیچ کدام در خروجی نمی آیند.

    Outer Join : در این روش سطرهایی از جدول اصلی که سطر متناظرشان در جدول دیگر وجود ندارد هم در خروجی می آیند. بسته به اینکه بخواهیم کدامیک از سطرهایی که در جدول دیگر متناظر ندارند هم در خروجی بیایند، سه نوع Outer Join بصورت زیر تعریف می شود :

    1- Left Outer Join : تمام سطرهای جدول اولی (جدولی که در سمت چپ Join قرار گرفته است) در خروجی ظاهر می شوند. ولی سطرهایی از جدول دوم که متناظری در جدول اول ندارند در خروجی نمی آیند. بعنوان مثال دستور زیر تمام title ها ، حتی آنهایی که publisher ندارند، را در خروجی نشان می دهد :

    SELECT titles.title_id, titles.title, publishers.pub_name
    FROM titles LEFT OUTER JOIN publishers
    ON titles.pub_id = publishers.pub_id

    2- Right Outer Join : تمام سطرهای جدول دومی (جدولی که در سمت راست Join قرار گرفته است) در خروجی ظاهر می شوند. بعنوان مثال دستور زیر تمام publisher ها را نشان می دهد حتی آنهایی که title ندارند هم در خروجی نمایش داده می شوند:

    SELECT titles.title_id, titles.title, publishers.pub_name
    FROM titles RIGHT OUTER JOIN publishers
    ON titles.pub_id = publishers.pub_id

    3- Full Outer Join : تمام سطرهای هر دو جدول در خروجی می آیند چه در جدول دیگر متناظر داشته باشند چه نداشته باشند. به عنوان مثال دستور زیر تمام title ها و تمام publisher ها را نشان می دهد:

    SELECT titles.title_id, titles.title, publishers.pub_name
    FROM titles FULL OUTER JOIN publishers
    ON titles.pub_id = publishers.pub_id

    Cross Join : نتیجه این Join تمام ترکیباتی است که از قرار گرفتن هر سطر از جدول اولی در کنار تمام سطرهای جدول دومی بدست می آید(همانند حاصلضرب دکارتی). بعنوان مثال authors Cross Join Publisher مجموعه تمام حالتهای ممکن author/publisher را در خروجی تولید می کند :

    SELECT * FROM authors CROSS JOIN publishers




    دوستان خوشتون اومد یه تشکر بکنید.

    موفق باشید


  2. #2
    کاربر دائمی آواتار raha1234567
    تاریخ عضویت
    مرداد 1389
    سن
    26
    پست
    253
    تشکر کردن
    143
    105 بار تشکر شده در 28 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    دوستان اگه خوشتون اومد بگید تا آموزش های دیگه رو هم بذارم.

  3. 3 کاربر از raha1234567 به خاطر این مطلب مفید تشکر کرده اند:


  4. #3
    کاربر دائمی آواتار raha1234567
    تاریخ عضویت
    مرداد 1389
    سن
    26
    پست
    253
    تشکر کردن
    143
    105 بار تشکر شده در 28 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    دوستان اگه نظری دارید بگید خوشحال میشم.

  5. 2 کاربر از raha1234567 به خاطر این مطلب مفید تشکر کرده اند:


  6. #4
    کاربر دائمی آواتار raha1234567
    تاریخ عضویت
    مرداد 1389
    سن
    26
    پست
    253
    تشکر کردن
    143
    105 بار تشکر شده در 28 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    دوستان گفته شده منبع ها را هم بگم .
    من این مطلب را بر حسب نیاز از اینترنت سرچ کردم گفتم برا شما هم بذارم شاید بدردتون خورد.

  7. کاربرانی که به خاطر مطلب مفید raha1234567 از وی تشکر کرده‌اند:


  8. #5
    کاربر جدید آواتار sheytoon.bala89
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    ساري
    پست
    9
    تشکر کردن
    34
    13 بار تشکر شده در 8 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    همانند حاصلضرب دکارتی

    ميشه بگي:
    1. ضرب دكارتي چيه؟
    2. ضرب دكارتي دو جدول چيه؟
    3. اگه دو جدول فيلد مشترك نداشته باشن ميتونيم Join كنيم يا نه.
    4. آيا بايد فيلد مشترك حتما كليد باشه؟ (اگه ميتونه كليد نباشه چه عواقبي را به دنبال داره.)
    5. آيا عكس عمل Join وجود داره؟

  9. کاربرانی که به خاطر مطلب مفید sheytoon.bala89 از وی تشکر کرده‌اند:


  10. #6
    کاربر دائمی آواتار raha1234567
    تاریخ عضویت
    مرداد 1389
    سن
    26
    پست
    253
    تشکر کردن
    143
    105 بار تشکر شده در 28 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    نقل قول نوشته شده توسط sheytoon.bala89 مشاهده تاپیک
    ميشه بگي:
    1. ضرب دكارتي چيه؟
    2. ضرب دكارتي دو جدول چيه؟
    3. اگه دو جدول فيلد مشترك نداشته باشن ميتونيم Join كنيم يا نه.
    4. آيا بايد فيلد مشترك حتما كليد باشه؟ (اگه ميتونه كليد نباشه چه عواقبي را به دنبال داره.)
    5. آيا عكس عمل Join وجود داره؟
    شرمنده عزیز من که گفتم این اطلاعات را بر حسب نیاز پیدا کردم و تا حد تعریف join ها دارم تا چند روز دیگه این اطلاعتم که کامل شد براتون جواب میذارم

  11. کاربرانی که به خاطر مطلب مفید raha1234567 از وی تشکر کرده‌اند:


  12. #7
    کاربر جدید آواتار sheytoon.bala89
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    ساري
    پست
    9
    تشکر کردن
    34
    13 بار تشکر شده در 8 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    شرمنده عزیز
    مشكلي نيست.
    نميخواد خودتو اذيت كني.
    راضي به زحمت نيستم.

  13. 2 کاربر از sheytoon.bala89 به خاطر این مطلب مفید تشکر کرده اند:


  14. #8
    کاربر دائمی آواتار mahdi_farhani
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    فولادشهر - اصفهان
    سن
    30
    پست
    1,227
    تشکر کردن
    61
    733 بار تشکر شده در 273 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    نقل قول نوشته شده توسط sheytoon.bala89 مشاهده تاپیک
    ميشه بگي:
    1. ضرب دكارتي چيه؟
    2. ضرب دكارتي دو جدول چيه؟
    3. اگه دو جدول فيلد مشترك نداشته باشن ميتونيم Join كنيم يا نه.
    4. آيا بايد فيلد مشترك حتما كليد باشه؟ (اگه ميتونه كليد نباشه چه عواقبي را به دنبال داره.)
    5. آيا عكس عمل Join وجود داره؟
    ضرب دکارتی : یک عمل ریاضی است که برای تولید یک زوج مرتب از دو مجموعه استفاده میشه ، و تمام اعضای مجموعه اول را در مجوعه دوم به صورت زوج مرتب ایجاد میکند . مولفه اول زوج مرتب از مجموعه اول و مولفه دوم از مجموعه دوم
    A={a,b,c}
    B={1,2}

    دو مجموعه فوق را در نظر بگیرید، حاصل ضرب دکارتی آن به این شکل است
    C={(a,1)(a,2)(b,1)(b,2)(c,1)(c,2)}


    -ضرب دکارتی دو جدول هم همین است ،با این تفاوت که بر روی رکوردهای انجام میشود.
    -فیلد مشترک یعنی چی ؟ بله در CROSS Join شما نیازی به فیلد ندارید ولی در بقیه موارد برای اینکه یک رابطه بین دو جدول باشند باید فیلدی را مشخص کنید

    -نه خیر ربطی به کلید بودن نداره ، ولی تا حالا برای من پیش نیومده که بخواهم پیوندی را بزنم که یک طرف کلید اصلی نباشه
    مثال نقض : جدولی به این شکل دارید :
    1- ID , int Primery Key , Auto increment
    2- Melicode , nvarchar(15) Uniqe
    ,....
    -----
    جدول دوم به این شکل است
    1-MeliCode nvarchar(15)
    2-Cost money
    ,.....
    پیوندی که روی این دو جدول زده میشه روی کد ملی انجام میشه ، وکد ملی کلید نیست . ( البته در جدول دوم به عنوان کلید خارجی شناخته میشه)
    (البته از نظر طراحی مشکل دارد ، فقط برای اینکه سوالتون رو جواب داده باشم این مثال رو زدم)

    -منظورتون از عکس عمل پیوند رو متوجه نشدم ؟!
    چه چیزی رو میخواهین جدا کنید ؟! جداول که خودشون جدا هستند و هر زمان که نیاز دارید جداشون کنید خوب به تنهایی استفاده کنید

  15. 7 کاربر از mahdi_farhani به خاطر این مطلب مفید تشکر کرده اند:


  16. #9
    کاربر جدید آواتار sheytoon.bala89
    تاریخ عضویت
    مرداد 1389
    محل زندگی
    ساري
    پست
    9
    تشکر کردن
    34
    13 بار تشکر شده در 8 پست

    نقل قول: انواع JOIN در SQL (پایگاه داده ها)

    چه چیزی رو میخواهین جدا کنید ؟! جداول که خودشون جدا هستند و هر زمان که نیاز دارید جداشون کنید خوب به تنهایی استفاده کنید
    جدول بزرگي دارم ميخوام بشكنمش به جدولهاي كوچكتر (دليل خاصي به ذهنم نميرسه كه بگم ولي حتما نياز ميشه)

  17. 2 کاربر از sheytoon.bala89 به خاطر این مطلب مفید تشکر کرده اند:


قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •