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

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

  1. #1

    انواع 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

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

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

  3. #3

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

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

  4. #4

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

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

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

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

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

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

  6. #6

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

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

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

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

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

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

    نقل قول: انواع 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
    ,.....
    پیوندی که روی این دو جدول زده میشه روی کد ملی انجام میشه ، وکد ملی کلید نیست . ( البته در جدول دوم به عنوان کلید خارجی شناخته میشه)
    (البته از نظر طراحی مشکل دارد ، فقط برای اینکه سوالتون رو جواب داده باشم این مثال رو زدم)

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

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

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

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

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

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