PDA

View Full Version : کوئری زدن روی چند جدول



sobhan1990
پنج شنبه 13 خرداد 1395, 12:26 عصر
با سلام و احترام خدمت دوستان

چند تا جدول دارم که برای کوئری زدن نیاز به راهنمایی دوستان دارم.
4 جدول به نام های t1 و t2 و t3 و t4 داریم که هرکدام دارای یک کلید اصلی هست
کلید اصلی این 4 جدول را در یک جدول دیگری به نام tablekeys ذخیره می کنیم

برای ذخیره سازی اطلاعات هیچ مشکلی نیست.

قسمت مورد سوال در جستجو هست:
برای هرکدام از 4 جدول بتوانم یک شرط اعمال کنم(دستور where برای هرکدام از جدول های t1 تا t4 داشته باشم)

فرضا جدول t1 مشخصات فردی(اسم - سن - جنسیت)
جدول t2 مشخصات تحصیلی ( رشته تحصیلی - مقطع - معدل )
جدول t3 سابقه کار(مدت زمان سابقه - دوره تدریس شده)
جدول t4 مشخصات خانواده تحت پوشش(نام فرزند- تاریخ تولد)

که هر جدول دارای یک کلید اصلی است و برای هر "فرد" کلیدهای اصلی اطلاعاتش از جداول چهارگانه در جدول tablekeys ذخیره شده

حال می خواهم کوئری بزنم که افرادی که دارای اسم "حسین" و معدل بالای 18 و مدت سابقه بالای 4 سال و تعداد فرندان کمتر از 3 باشند را برایم انتخاب کند.
لطفا راهنمایی کنید
پیشاپیش تشکر می کنم.

در ضمن از sql server 2008 استفاده می کنم.

sobhan1990
پنج شنبه 13 خرداد 1395, 16:55 عصر
کسی نیست راهنمایی کنه ؟؟

مهرداد صفا
جمعه 14 خرداد 1395, 12:21 عصر
سلام و وقت بخیر.
اولا که نوع طراحیتون رو باید تغییر بدید. در حال حاضر شما یک جدول پنجم دارید که شناسه چهار جدول دیگه رو داخلش ذخیره می کنید، در واقع علاوه بر این که سربار در ذخیره داده دارید، به نوعی استفاده نادرست از شناسه اتفاق می افته که پیچیدگی های بعدی در درخواست ها رو هم به دنبال خواهد داشت. آیا برای این کارتون دلیل خاصی دارید؟
پس شما می تونید در جدول اول برای هر فرد یک شناسه تولید کنید و در سه جدول دیگه از همون شناسه استفاده کنید. به این ترتیب فکر می کنم دیگه مشکل خاصی در کوئری زدن و join کردن جداول نداشته باشید.

sobhan1990
جمعه 14 خرداد 1395, 19:50 عصر
ممنون پاسختون
خیر دلیل خاصی برای این طراحی نیست.. فقط فکر می کردم به این شکل صحیح است!
ممنون میشم اگر مثالی بزنید یا یک مرجع جهت مطالعه معرفی کنید