PDA

View Full Version : select با دو کلید خارجی



miladr
دوشنبه 22 بهمن 1386, 16:05 عصر
من یک جدول دارم که نام کاربری و کد کاربری رو ذخیره می کنه و یک جدول که نامه ای از یک کاربر به کاربر دیگه رو ذخیره می کنه.و فیلد sender_id و reciver_id اون با جدول user ها کلید خارجی هست.
حالا من میخوام یک کوئری بگیرم که به جای ID دو تا کاربر بیاد از جدول دوم اسمشون رو بگیره.
من هیچ کلمه ای واسه جستجو این سوال پیدا نکردم پس اگه تکراری معذرت.

TNZ187
دوشنبه 22 بهمن 1386, 19:35 عصر
سلام
من خیلی خوب سوال رو متوجه نشدم ولی این طور که معلومه می شه به این شیوه عمل کرد .
مثلا نام جدول های شما User و Mail است .

Select name from [User] where Exists (Select RID,UID From Mail where ID=@ID)من امتحان کردم جواب داد .

miladr
دوشنبه 22 بهمن 1386, 20:33 عصر
متاسفانه من یکم گنگ نوضیح دادم یه جدول دارم
برای user ها :
id name
--------- ---------
110 ali
156 reza

جدول نامه ها :

reciver sender title body
--------- --------- --------- ---------
110 115 asdasd asdas
115 110 asdasd asdas

حالا خروجی من باید اینطوری باشه.
ali reza asdasd asdasd

که نمی دونم چطور دستور بنویسم براش

TNZ187
دوشنبه 22 بهمن 1386, 21:05 عصر
سلام
یک راه نسبتا بد داره . ( چون خیلی از نظر تو در تو بودن بدم می آید )

select tb.fName,tb2.SName,Mail.Name from Mail Inner join (select [User].Name as Fname,[User].ID from [user] ) as tb on tb.ID=Mail.UID Inner join (select [User].Name as Sname,[User].ID from [user]) as tb2 on tb2.ID=Mail.RID

SYNDROME
سه شنبه 23 بهمن 1386, 06:46 صبح
این راه هم نگاه کنید.


Select R.UserName As RUserName , S.UserName As SUserName
From Tbl_Test T
Left Outer Join Tbl_User R
On T.ReceiveID=R.UserID
Left Outer Join Tbl_User S
On T.SendID=S.UserID

موفق باشید