View Full Version : سوال: ترکیب کردن دو جدول که فقط یک فیلد مشترک دارن
bivatan
دوشنبه 19 خرداد 1393, 23:14 عصر
با سلام
دوستان عزیز من میخوام از دو تا جدول که فقط توی یک فیلد باهم مشترک هستند (مثلا کد ملی) یک کوئری بسازم که هم شامل فیلد های جدول اول(مثلا : کد ملی ،نام ، نام خانوادگی و... ) و هم فیلد های جدول دوم(مثلا : نام پدر ، شماره شناسنامه ، تلفن و ... ). ضمنا ، امکان داره فیلد مشترک ،در جدول اول ، حاوی داده ای باشه که در جدول دوم نباشه یا بالعکس.فکر کنم از عکس زیر بتونید منظورمو متوجه بشید.اگه بتونید راهنماییم کنید ممنون میشم،فقط چون حرفه ای نیستم خواهش میکنم کامل بگید چه کدی رو با چه تغییراتی کجا بنویسم .
بازم ممنونم ازتون:بوس:
http://yasupload.ir/images/39492380712990677306.jpg
bivatan
سه شنبه 20 خرداد 1393, 10:36 صبح
پس چرا کسی جواب مارو نمیده؟:ناراحت:
mahdytaherian
سه شنبه 20 خرداد 1393, 21:52 عصر
جدول 1 رو با جدول2 توسط فیلد کدملی ارتباط یک به چند برقرار کن نمونه بگذارید اعمال کنم
salar IT man
سه شنبه 20 خرداد 1393, 23:07 عصر
سلام.وقتی شما میگید که تو یه فیلد مشترک هستند و میخواین که قوانین جامعیت هم حفظ شه، یه ارتباط 1 به N ما بین این جداول وجود خواهد داشت.که در اون صورت هم وجود اون N به وجود 1 وابسته میشه . یعنی شما نمیتونید بگید شخصی با نام و فامیلی مشخص وجود نداره ولی تو اون یکی جدول شما ره موبایل براش ست کردم .اصلا درست نیست . البته خود شما هم کارتون خوبه ولی به نظر بنده بهتر جداولتونو کمی نرمال کنید.تاریخ تولد به کد ملی شخص وابستگی تابعی داره و بهتر بود که تو همون جدول اول بیارید. بهتر به این صورت باشه جداولتون:
table1(NIN,FirstName,LastName,BrithDay)
table2(ID,NIN,Phone)
در جدول 1 کدملی کلید اصلی هستش.و چون امکان داره که شماره موبایل برای هر فرد چند تا باشه به همین دلیل یه فیلد چند مقداری میشه و باید جدول جدایی داشته باشه
که در جدول 2 کدملی کلید خارجی است از جدول 1.که مشخص میکنه شخص A شماره تلفن 0937987122 داره ، بازم شخص A شماره تلفن 0912348999 هم داره این کاملترن شکل باشه به نظرم. اگه جایی رو بد گفتم بگین توضیح میدم
bivatan
چهارشنبه 21 خرداد 1393, 12:55 عصر
درسته ولی اینجوری فیلد های غیر مشترک حذف میشند و فقط کد ملی هایی که توی هر دو جدول هست نمایش داده میشند
bivatan
چهارشنبه 21 خرداد 1393, 13:29 عصر
سلام.وقتی شما میگید که تو یه فیلد مشترک هستند و میخواین که قوانین جامعیت هم حفظ شه، یه ارتباط 1 به N ما بین این جداول وجود خواهد داشت.که در اون صورت هم وجود اون N به وجود 1 وابسته میشه . یعنی شما نمیتونید بگید شخصی با نام و فامیلی مشخص وجود نداره ولی تو اون یکی جدول شما ره موبایل براش ست کردم .اصلا درست نیست . البته خود شما هم کارتون خوبه ولی به نظر بنده بهتر جداولتونو کمی نرمال کنید.تاریخ تولد به کد ملی شخص وابستگی تابعی داره و بهتر بود که تو همون جدول اول بیارید. بهتر به این صورت باشه جداولتون:
table1(NIN,FirstName,LastName,BrithDay)
table2(ID,NIN,Phone)
در جدول 1 کدملی کلید اصلی هستش.و چون امکان داره که شماره موبایل برای هر فرد چند تا باشه به همین دلیل یه فیلد چند مقداری میشه و باید جدول جدایی داشته باشه
که در جدول 2 کدملی کلید خارجی است از جدول 1.که مشخص میکنه شخص A شماره تلفن 0937987122 داره ، بازم شخص A شماره تلفن 0912348999 هم داره این کاملترن شکل باشه به نظرم. اگه جایی رو بد گفتم بگین توضیح میدم
ممنون از پاسختون
اما شما فرض بر این بذارید که نمیشه یک فیلد از یک جدول کم یا به دیگری اضافه کرد..
جدول 1 و جدول 2 رو نمیتونم دست بزنم . و ملاک بر این هست که همه اطلاعات در دو جدول چه مشترک و چه غیر مشترک در کوئری بیاد.
فایل جدولا رو براتون گذاشتم ممنون میشم رو اونم اعمال کنید
نمونه : http://uplood.ir/1C6J
ariayekta
پنج شنبه 22 خرداد 1393, 20:04 عصر
سلام
ببنید منظورتون همینه؟
bivatan
شنبه 24 خرداد 1393, 15:31 عصر
سلام بله خیلی ممنونم...خدا خیرتون بده
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.