PDA

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



vb-sosol
چهارشنبه 24 آذر 1389, 10:11 صبح
سلام
من برای ارتباط بین جدولها به مشکل برخوردم
کلا مفهمومش رو درست متوجه نشدم ممنون میشم بهم توضیح دهید
من دو تا جدول دارم یکی دانشجو یکی هم رشته
که توی جدول دانشجو مشخصات دانشجو( کد-نام-نام خانودگی-سال ورود-رشته ) و در جدول رشته (کد- نام رشته - مقطع) گرفته میشه
کلید ها در جدول دانشجو کد و در جدول رشته کد رشته هست
حالا چطوری بهم ارتباطشون بدم؟

(سرچ فروم بدرستی کار نمیکنه)

vb-sosol
چهارشنبه 24 آذر 1389, 10:43 صبح
'student' table saved successfully
'reshte' table
- Unable to create relationship 'FK_reshte_student'.
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_reshte_student". The conflict occurred in database "stud", table "dbo.student", column 'stno'.

chasbonakam
چهارشنبه 24 آذر 1389, 11:21 صبح
سلام

برای ارتباط بین این دو جدول باید از کد رشته استفاده کنی

به این صورت که در جدول رشته ها کد رشته رو به عنوان کلید اصلی در نظر می گیری و کد رشته موجود در جدول دانشجو کلید فرعی در نظر گرفته بشه-

کافیه کد رشته مورد نظر رو در جدول دانشجو(فیلد کد رشته) ذخیره کنی و برای نمایش کامل اطلاعات دانشجو به همراه نام رشته به صورت زیر عمل کن

Select * from tblstudent inner join tblreshteh on(tblstudent.reshtehid=tblreshteh.reshtehid)where stid=@stdi



موفق باشی

vb-sosol
چهارشنبه 24 آذر 1389, 12:12 عصر
ببینید این دستور رو که نوشتید اصلا من باهاش کار نکردم
ما وقتی میخوایم دو تا جدول رو با هم ارتباط بدیم از قسمت databaes diagrams در sql جدولها رو اضافه میکنیم و بعد شروع به ارتباطش میدیم
من کلا مفهموم رو متوجه نشدم که آیا کلید به کلید باید ارتباط داشته باشه یا ....

توی پیاده سازیش هم مشکل دارم

دختر کوهستان
چهارشنبه 24 آذر 1389, 12:26 عصر
توی جدول دانشجوت به جای رشته ، کد رشته اش رو ذخیره کن. این کد رشته میشه کلید خارجی . کلید خارجی هم یعنی فیلدی که توی جدول دیگه ای کلید اصلیه.حالا این جوری join کن:

select * from
student inner join reshte
on student.idreshte=reshte.idreshte

اگه هم می خوای رشته ی دانشجوی خاصی رو به دست بیاری همون کد دوست بالاییمون مربوط به اونه. توی قسمت where ، آی دی دانشجویی که می خوای رو ازت می گیره و اطلاعاتش رو نشون میده.

chasbonakam
چهارشنبه 24 آذر 1389, 12:27 عصر
ببینید این دستور رو که نوشتید اصلا من باهاش کار نکردم
ما وقتی میخوایم دو تا جدول رو با هم ارتباط بدیم از قسمت databaes diagrams در sql جدولها رو اضافه میکنیم و بعد شروع به ارتباطش میدیم
من کلا مفهموم رو متوجه نشدم که آیا کلید به کلید باید ارتباط داشته باشه یا ....

توی پیاده سازیش هم مشکل دارم

درسته برای ارتباط بین جدول ها از همون راهی که شما گفتی استفاده می کنیم

الان اگه به شما بگن یه کویری بنویس که خروجیش تمامی مشخصات دانشجو به همراه نام رشته باشه چه کار می کنی؟

در این جور مواقع باید از دستور join استفاده کرد.

برای این که بیشتر متوجه بشی یه جستجو درباره "دستور join " انجام بده ، تو تالار زیاد در رابطه باهاش بحث شده.
اگر جستجوی سایت مشکل داره از google استفاده کن.

موفق باشی