PDA

View Full Version : سوال در مورد یک پرس و جو در SQL



reza1699
چهارشنبه 16 بهمن 1392, 12:55 عصر
من یه جدول به نام اکشن دارم و یک جدول به نام یوزر !
در جدول اکشن یک کد فرستنده هست و یک کد گیرنده.یعنی کد هر دو ثبت میشه
و در جول یوزر هم تمام کدهای یوزرها به همراه مشخصاتشون هست.

حالا چطور میتونم با یک اینرجوین در گزارش کریستال ریپورتم به جای کد یوزرها ، سمتشون رو نمایش بدم؟

برای یکیش (مثلا فرستنده) مشکلی نیست ! ولی وقتی دو تا میشه و یک بار دیگه باید اینرجوین کنم...اون زمان چطور میشه؟

select * from Actions inner join Users on actions.UserID=users.Code
در حالت بالا صرفا مشخصات فرستنده رو میاره جلوی فیلد های اکشن ! حالا میخوام مشخصات گیرنده هم بیاره !
اون فیلد دومی که گیرنده هستش و در جدول اکشن موجوده ، اسمش Kartabl هست.

alexmcse
چهارشنبه 16 بهمن 1392, 15:06 عصر
من یه جدول به نام اکشن دارم و یک جدول به نام یوزر !
در جدول اکشن یک کد فرستنده هست و یک کد گیرنده.یعنی کد هر دو ثبت میشه
و در جول یوزر هم تمام کدهای یوزرها به همراه مشخصاتشون هست.

حالا چطور میتونم با یک اینرجوین در گزارش کریستال ریپورتم به جای کد یوزرها ، سمتشون رو نمایش بدم؟

برای یکیش (مثلا فرستنده) مشکلی نیست ! ولی وقتی دو تا میشه و یک بار دیگه باید اینرجوین کنم...اون زمان چطور میشه؟

select * from Actions inner join Users on actions.UserID=users.Code
در حالت بالا صرفا مشخصات فرستنده رو میاره جلوی فیلد های اکشن ! حالا میخوام مشخصات گیرنده هم بیاره !
اون فیلد دومی که گیرنده هستش و در جدول اکشن موجوده ، اسمش Kartabl هست.

امتحان کنید


SELECT * Actions,* Users,* Kartabl
FROM Actions INNER JOIN
Users ON Actions.IdActions = Users.id INNER JOIN
Kartabl ON Actions.IdActions = Kartabl.IdKartabl

reza1699
چهارشنبه 16 بهمن 1392, 20:48 عصر
دوست عزیز ممنون از پاسختون ! ولی فکر میکنم اشتباه متوجه شدید.
کارتابل یک جدول نیست ! یک فیلد از فیلدهای اکشنه !

starting
پنج شنبه 17 بهمن 1392, 09:40 صبح
یکی از راه ها اینه که جدول Action را دو مرتبه با جدول User پیون دهید، یکبار برای اولین User و بار دیگر برای دومین User.
فقط برای اینکه نام یک جدول دو مرتبه ذکر میشه باید برای متمایز شدنشون حداقل برای یکی از آنها نام مستعار تعیین کنید.