PDA

View Full Version : بیرون آوردن اطلاعات از دوجدول



Fastdesign
شنبه 10 دی 1390, 13:04 عصر
سلام
دو جدول دارم با این مشخصات :
جدول یک :
code - fname - lname

جدول دو :
tel - address - code

کدها در هر دو جدول مثل هم هستند

حالا می خوام با جستجو Code از جدول اول کل اطلاعات در مورد یک شخص برام بیرون بیاره!

mehdi.mousavi
شنبه 10 دی 1390, 13:19 عصر
سلام.
خوب نگفتید مشکل کجاست؟ نوشتن SQL Statement ای که این اطلاعات رو از جداول استخراج کنه؟ اگر اینطوره، می تونید از Inner Join ها استفاده کنید:

SELECT t1.fname, t1.lname, t2.tel FROM Table1 t1 INNER JOIN Table2 t2 ON t1.code = t2.code

موفق باشید.

پاورقی: لطفا سوالاتی که صرفا به بانک های اطلاعاتی مربوطه میشه رو در بخش خودش ارسال کنید (تاپیک شما به بخش T-SQL منتقل شد)

Fastdesign
شنبه 10 دی 1390, 13:43 عصر
t1 با Tabel1 هر دو مثل هم هستند یا نه ؟

میشه کمی بشتر توضیح بدید :

mehdi.mousavi
شنبه 10 دی 1390, 17:22 عصر
t1 با Tabel1 هر دو مثل هم هستند یا نه ؟ میشه کمی بشتر توضیح بدید :

t1 یه نام مستعار (alias) هستش که برای ساده تر نوشتن Query بکار رفته. اینطوری، دیگه مجبور نیستیم هر جا که خواستیم به Table1 ارجاعی داشته باشیم، بنویسیم Table1 بلکه براحتی میتونیم بنویسیم t1. شما میتونید جای t1 و t2 هر اسم دیگه ای که مایل بودید، بکار ببرید یا اصلا هر دو رو حذف کنید و Query رو بدین شکل بنویسید:

SELECT Table1.fname, Table1.lname, Table2.tel FROM Table1 INNER JOIN Table2 ON Table1.code = Table2.code

موفق باشید.

پاورقی: توصیه میکنم قبل از اینکه به سرعت Query ای که نوشتم رو کپی کنید و در Production Code خودتون استفاده کنید، ابتدا در Books Online یا دیگر Resource های موجود، از نحوه عملکرد Join ها اطلاع حاصل کنید. ما گونه های متفاوتی از Join در SQL داریم که Inner Join اتها یکی از اون انواع هستش.

pashna
یک شنبه 11 دی 1390, 11:06 صبح
سلام، آقای موسوی توضیح دادن که چه کاری باید بکنید،ولی‌ من می‌خوام در مورد جوین یه کم توضیح بدم، کلا چند نوع جوین وجود داره، که می‌شه ازشون استفاده کرد
ایننر جوین که نظیر به نظیر دو جدول رو باهم جوین می‌کنه روی کلید
79976
79977
79978

و یا لفت جوین که از جدول سمت چپ همهٔ رکورد هارو میاره و اگر در جدول سمت راست چیزی نبود مقدار نال رو بجاش میذاره
79979

و همینطور رایت جوین که برعکس عمل می‌کنه
79980

و یا کراس جوین که تمام رکورد‌ها از جدول یک را با تمام رکورد‌ها از جدول ۲ نمایش میدهد. لطفا توجه داشته باشید که در این نوع جوین احتیاجی‌ به کلید نیست (m*n)

pashna
یک شنبه 11 دی 1390, 11:08 صبح
79982

بنظرم اگر اینم بخونید خوب
http://en.wikipedia.org/wiki/SQL

sadra1234
چهارشنبه 12 بهمن 1390, 07:18 صبح
سلام
من برای دو جدول مشکلی ندارم ولی وقتی میشه سه جدول نمیشه
میشه راهنمایی بفرمائید؟

Galawij
چهارشنبه 12 بهمن 1390, 07:28 صبح
Select * From TB1 Inner Join TB2 ON TB1.ID=TB2.ID Inner Join TB3 ON TB1(Or TB2).ID=TB3.ID