PDA

View Full Version : ارتباط بین 3 جدول



sohil_ww
جمعه 21 تیر 1392, 22:53 عصر
من تو برنامم 3 تا جدول دارم که می خوام باهم در ارتباط باشن
1.میشه بدون تعین کلید خارجی ارتباط برقرار کرد بین شود؟
2.می خوام فیلد های خاصی از از هر 3 جدول با استفاده از INNER JOIN نمایش بدم ممنون میشم 1 نمونه از کوئری بران مثال بزنید

veniz2008
شنبه 22 تیر 1392, 01:16 صبح
من تو برنامم 3 تا جدول دارم که می خوام باهم در ارتباط باشن
1.میشه بدون تعین کلید خارجی ارتباط برقرار کرد بین شود؟
سلام.
سوال یه کم مبهمه. ما برای طراحی کلید خارجی دو کار میکنیم. یکی اینکه فیلدی که در جدول اصلی وجود داره، در جدول وابسته هم اونو به عنوان کلید خارجی میاریم. کار دومی که میکنیم این هست که از قسمت Relation Ship میایم و ارتباط بین جدول اصلی و جدول وابسته (که کلید خارجی داره) رو برقرار میکنیم. مرحله دوم ضروری نیست ولی اکیدا توصیه میکنم که هر دو کار رو انجام بدید. کار مرحله دوم اینه که اجازه ورود داده نامعتبر رو نمیده. این حرف یعنی اینکه اگر شما فرضا در جدول اصلی فیلد کلیدتون مقادیر 100 ،101 و 102 رو داشته باشید و اگر مرحله 2 رو انجام بدی بعنوان کلید خارجی فقط میتونی اعداد 100 یا 101 یا 102 رو وارد کنی و دیگه نمیشه عدد نامعتبر وارد کرد. ولی اگر مرحله 2 رو انجام ندی مثلا میشه بعنوان کلید خارجی در جدول وابسته هر عددی رو مثلا 500 رو هم وارد کرد. درصورتیکه این 500 یک عدد نامعتبر هست و در جدول اصلی این عدد وجود نداره.


2.می خوام فیلد های خاصی از از هر 3 جدول با استفاده از INNER JOIN نمایش بدم ممنون میشم 1 نمونه از کوئری بران مثال بزنیدسه جدول : مشتری(Customer)، گیاه (Plant) و خرید (Buy) رو در نظر بگیرید.

select Customer.FirstName , Customer.LastName ,plant.PlantName,plant.Code,
Buy.UserName,Buy.Code,Buy.Price from Customer inner join Buy
on Customer.UserName = Buy.UserName inner join plant
on plant.Code = Buy.Code
موفق باشید.

sohil_ww
شنبه 22 تیر 1392, 13:35 عصر
select Customer.FirstName , Customer.LastName ,plant.PlantName,plant.Code,
Buy.UserName,Buy.Code,Buy.Price from Customer inner join Buy
on Customer.UserName = Buy.UserName inner join plant
on plant.Code = Buy.Code

مرسی ممنون.
من حالا اگه بخوام بگم که برای مثال
where Buy cod=1

منظورم اینه که بعد این سه تا ایننر جوین 1 چک کنه که داده های حاصله buy.code=1 باشه.

sohil_ww
دوشنبه 24 تیر 1392, 09:59 صبح
کسی نبود کمک کنه ؟!

veniz2008
دوشنبه 24 تیر 1392, 10:44 صبح
کافیه شرط رو به انتهای کوئری اضافه کنید. منظور از buycode@ همون کد خریدی است که کاربر وارد میکنه تا براساس اون جستجو انجام بشه.


select Customer.FirstName , Customer.LastName ,plant.PlantName,plant.Code,
Buy.UserName,Buy.Code,Buy.Price from Customer inner join Buy
on Customer.UserName = Buy.UserName inner join plant
on plant.Code = Buy.Code where Buy.Code = @buycode