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

نام تاپیک: استخراج داده از دو جدول با رابطه چند به چند

  1. #1

    Question استخراج داده از دو جدول با رابطه چند به چند

    سلام اساتید بزرگوار!
    من یک بانک اطلاعاتی دارم که دارای دو جدول است به نام های TBL_Revayat و TBL_Onvan بین این دو جدول رابطه چند به چند برقرار است یعنی: یک رکورد از جدول TBL_Revayat می توانند با چندین رکورد از جدول TBL_Onvan ارتباط داشته باشد و بالعکس. برای ایجاد این رابطه چند به چند بین این دو جدول من آمدم یک جدول واسط ایجاد کرده ام به نام TBL_OnvanRevayat که کلیدهای اصلی دو جدول TBL_Revayat و TBL_Onvan در این جدول واسط به عنوان کلید خارجی به کار رفته است.
    حالا می خواهم در VB.net یک فرم بسازم که وقتی یک رکورد از جدول TBL_Revayat را انتخاب کنم تما رکوردهای مرتبط با آن از جدول TBL_Onvan استخراج شده در یک لیست باکس نمایش داده شود. یا بالعکس وقتی یک رکورد را از جدول TBL_Onvan انتخاب کنم تمام رکوردهای مرتبط با آن از جدول TBL_Revayat استخراج بشه.
    مشکل بنده این است که نمی دانم از چه کدی برای این کار استفاده کنم. بنده این کد زیر را به کار گرفتم ولی درست کار نمی کند یعنی وقتی یک رکورد از جدول TBL_Revayat را انتخاب می کنم تمام رکوردهای جدول TBL_Onvan نمایش داده میشه.
    SELECT TBL_Revayat.Sanad, TBL_Revayat.Matn, TBL_Onvan.Onvan FROM ((TBL_Revayat INNER JOIN TBL_OnvanRevayat ON TBL_Revayat.ID = TBL_OnvanRevayat.ID_Revayat) INNER JOIN TBL_Onvan ON TBL_OnvanRevayat.ID_Onvan = TBL_Onvan.ID)
    مشکل دیگری این کد این است که تمام رکوردهای جدول TBL_Revayat به عدد رکوردهای جدول TBL_Onvan تکرار می کنه.
    بسیار ممنون میشم اگر اساتید گروه کمک کنند.
    بسیار نیاز دارم به این کد .

  2. #2

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    کسی نیست جواب بگه

  3. #3
    مدیر بخش آواتار gilsoft
    تاریخ عضویت
    آبان 1386
    محل زندگی
    رشت
    پست
    753

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    نقل قول نوشته شده توسط Eqbali مشاهده تاپیک
    SELECT TBL_Revayat.Sanad, TBL_Revayat.Matn, TBL_Onvan.Onvan FROM ((TBL_Revayat INNER JOIN TBL_OnvanRevayat ON TBL_Revayat.ID = TBL_OnvanRevayat.ID_Revayat) INNER JOIN TBL_Onvan ON TBL_OnvanRevayat.ID_Onvan = TBL_Onvan.ID)
    مشکل دیگری این کد این است که تمام رکوردهای جدول TBL_Revayat به عدد رکوردهای جدول TBL_Onvan تکرار می کنه.
    سلام دوست عزیز

    همانطور که خودتان اشاره کردید: Query فوق مشکل شما رو حل نمی‌کنه

    بدلیل اینکه جداول شما و ارتباطات اون در دسترس من نیست .. بنابراین شکل کلی Query رو خدمتتان عرض می‌کنم:
    SELECT TBL_Revayat.Sanad, TBL_Revayat.Matn, TBL_Onvan.Onvan 
    FROM TBL_Revayat
    LEFT OUTER JOIN TBL_Onvan
    ON TBL_Revayat.ID = TBL_Onvan.ID_Revayat)


    اگه جواب نداد .. بجای LEFT OUTER از RIGHT OUTER استفاده کنید.

    موفق باشید .....
    قوانین سایت برنامه نویس [به هیچ عنوان از طریق پیام خصوصی به سوالات پاسخ داده نمی‌شود.]
    حمید محرابی

    چون وا نمیکنی گِره‌ای خود گِره مّشو / ابرو گشاده باش چو دستت گشاده نیست

  4. #4

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    سلام دوست بزرگوار
    بسیار ممنون از این که جواب منو دادید
    ولی من وقتی این کیوری را در بانک اکسس در VB.net استفاده می کنم خطای زیر نمایش میده حتی کلید واژه OUTER را حذف کردم گفتم شاید بانک اکسس از آن پشتبانی نکند بازهم همین خطا را نمایش میدهد.
    SELECT TBL_Revayat.Sanad, TBL_Revayat.Matn, TBL_Onvan.Onvan FROM TBL_Revayat LEFT JOIN TBL_Onvan ON TBL_Revayat.ID = TBL_Onvan.ID_Revayat

    44.png
    دیگر این که در این بانک اطلاعات دو جدول TBL_Revayat و TBL_Onvan رابطه چند به چند دارد که من این رابطه را با جدول واسط دیگر به نام TBL_OnvanRevayat ایجاد کرده ام و کلیدهای اصلی آن دو جدول در این جدول واسط به عنوان فارنکی به کار رفته است.
    این کیوری که شما نوشته اید ظاهرا مربوط به آن جای است که بین دو جدول TBL_Revayat و TBL_Onvan رابطه یک به چند باشد.
    بازهم بسیار ممنون و اگر با این ساختار برای کمک کنید و یک کد مناسب بنوسیند بسیار بسیار ممنون مشوم!
    آخرین ویرایش به وسیله Eqbali : چهارشنبه 06 مرداد 1395 در 13:01 عصر

  5. #5

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    اگر کمکم کنید بسیار بسیار ممنون میشم

  6. #6
    مدیر بخش آواتار gilsoft
    تاریخ عضویت
    آبان 1386
    محل زندگی
    رشت
    پست
    753

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    نقل قول نوشته شده توسط Eqbali مشاهده تاپیک
    اگر کمکم کنید بسیار بسیار ممنون میشم
    سلام مجدد

    دیتابیس شما SQL نیست ( احتمالا Access هست )

    اگه امکان داره .. اون قسمت سورس کوئری گرفتن رو بزار ببینیم قضیه چیه ...
    قوانین سایت برنامه نویس [به هیچ عنوان از طریق پیام خصوصی به سوالات پاسخ داده نمی‌شود.]
    حمید محرابی

    چون وا نمیکنی گِره‌ای خود گِره مّشو / ابرو گشاده باش چو دستت گشاده نیست

  7. #7

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    نقل قول نوشته شده توسط gilsoft مشاهده تاپیک
    سلام مجدد

    دیتابیس شما SQL نیست ( احتمالا Access هست )

    اگه امکان داره .. اون قسمت سورس کوئری گرفتن رو بزار ببینیم قضیه چیه ...
    بلی بانک اطلاعاتی من اکسس است
    من دو جدول اصلی دارم به نام های TBL_Revayat و TBL_Onvan این دو جدول رابطه چند به چند دارند که این رابطه را من با یک جدول واسط به نام TBL_OnvanRevayat ایجاد کردم.
    حالا می خواهم تمام اطلاعاتی جدول TBL_Revayat را در یک DataGridView نمایش دهم بعد وقتی روی یک رکورد این جدول در گریدویو کلیک کردم تمام رکوردهای مرتبط با آن در یک ListBox نمایش داده شود.
    برای این کار یک کد می خواهم
    بسیار ممنون از اینکه کمکم می کنید.
    این هم نمایی از طراحی و فیلدهای هر سه جدول
    55.png
    ماندم اصلا، نمی دانم برای این کار از JOIN استفاده می شود یا از WHERE
    آخرین ویرایش به وسیله Eqbali : چهارشنبه 06 مرداد 1395 در 14:10 عصر

  8. #8
    مدیر بخش آواتار gilsoft
    تاریخ عضویت
    آبان 1386
    محل زندگی
    رشت
    پست
    753

    Post نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    سلام مجدد

    ظاهرا Access ار LEFT OUTER پشتیبانی نمی‌کنه و شما باید از ترکیبی از WHERE یا GROUP BY ویا HAVING در کوئری استفاده کنید

    در ضمن من جداول رو تبدیل به SQL کردم .. LEFT OUTER بدرستی کار کرد ...

    بنظر من جدول TBL_OnvanRevaya چیز اضافه‌ایست و شما میتونید با استفاده از View این واسط رو داشته باشید ....

    بنابراین پیشنهاد میدم دیتابیس رو به SQL ارتقاء بدهید ...

    اگه نیاز به رهنمایی بیشتر داشتی به خواسته‌های من در پست قبلی جواب بده ...

    موفق باشید ....
    قوانین سایت برنامه نویس [به هیچ عنوان از طریق پیام خصوصی به سوالات پاسخ داده نمی‌شود.]
    حمید محرابی

    چون وا نمیکنی گِره‌ای خود گِره مّشو / ابرو گشاده باش چو دستت گشاده نیست

  9. #9

    نقل قول: استخراج داده از دو جدول با رابطه چند به چند

    نقل قول نوشته شده توسط gilsoft مشاهده تاپیک
    سلام مجدد

    ظاهرا Access ار LEFT OUTER پشتیبانی نمی‌کنه و شما باید از ترکیبی از WHERE یا GROUP BY ویا HAVING در کوئری استفاده کنید

    در ضمن من جداول رو تبدیل به SQL کردم .. LEFT OUTER بدرستی کار کرد ...

    بنظر من جدول TBL_OnvanRevaya چیز اضافه‌ایست و شما میتونید با استفاده از View این واسط رو داشته باشید ....

    بنابراین پیشنهاد میدم دیتابیس رو به SQL ارتقاء بدهید ...

    اگه نیاز به رهنمایی بیشتر داشتی به خواسته‌های من در پست قبلی جواب بده ...

    موفق باشید ....
    سلام استاد بزرگوار
    بسیار تشکر از راهنمایی تان
    من چون با SQL Server کار نکرده ام لذا برای فعلا مشکل است که به این زودی بتوانم با آن کار کنم
    اما اگر بخواهیم این کار با دستور WHERE انجام دهیم دستور Select آن را چگونه بنویسم.
    اصلا کاری که می خواهم به این شکل است:
    1ـ اطلاعات جدول TBL_Revayat را در یک گریدویو نمایش دهم
    2ـ سپس یک لیست باکس در کنار گریدویو است می خواهم هر وقت کاربر یک سطر از گریدویو را انتخاب کرد تمام رکوردهای مرتبط با آن سطر از جدول TBL_Onvan در لیست باکس نمایش داده شود.

تاپیک های مشابه

  1. سوال: ایجاد فرم با استفاده از دو تیبل با رابطه چند بخ چند
    نوشته شده توسط محمد مهدي در بخش Access
    پاسخ: 0
    آخرین پست: سه شنبه 16 اردیبهشت 1393, 03:27 صبح
  2. نحوه پیاده سازی دو جدول با رابطه چند به چند
    نوشته شده توسط SMRAH1 در بخش Access
    پاسخ: 6
    آخرین پست: یک شنبه 02 تیر 1392, 20:20 عصر
  3. پاسخ: 0
    آخرین پست: جمعه 09 تیر 1391, 21:02 عصر
  4. سوال: از دو جدول با Left Join عمل select را انجام دهيم؟
    نوشته شده توسط ali_abbasi22145 در بخش بانک های اطلاعاتی در Delphi
    پاسخ: 6
    آخرین پست: دوشنبه 25 آبان 1388, 09:47 صبح
  5. انتخاب ستونی از دو جدول با SQL
    نوشته شده توسط v_shalchian در بخش برنامه نویسی در Delphi
    پاسخ: 6
    آخرین پست: سه شنبه 20 مرداد 1383, 10:15 صبح

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

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