PDA

View Full Version : گرفتن اولین رکورد در هر دسته



htmbarnamenevisl
دوشنبه 19 تیر 1391, 10:45 صبح
سلام
من دوتا جدول دارم که بهم join شدند.

در جدول اول یک user id دارم که در جدول دوم هم به عنوان کلید خارجی درج شده.

جدول دوم یک کلید منحصر به فرد داره

در جدول دوم یک فیلد دیگه هم دارم . این فیلد در واقع یک مقدار تکراری از 1 تا 10 دارد . میخوام با ورود فیلد دوم(ورود یک تا 10) در پروسیجر لیست user id های جدول اول بدون تکرار بگیرم.
در حالت عادی لیست user id ها رو به من میده اما این user id ها اغلب تکراری هستند . من میخوام اولین رکورد در بین تمام رکوردهایی که user id یکسان دارند دارند را بگیرم . اینطوری یک لیت بدون تکرار user id خواهم داشت.

لطفا راهنماییم کنید

nilmil_nil
یک شنبه 01 مرداد 1391, 16:45 عصر
سلام
قبل از فیلد هاییی که می خوای با دستور SELECT نشون بدی کلمه DISTINC رو بذار .
رکورد های تکراری رو حذف می کنه

حمیدرضاصادقیان
دوشنبه 02 مرداد 1391, 07:55 صبح
سلام.
من به صورت تستی اینو نوشتم.
اگر جواب نداد باید ساختار دوجدول رو بنویسید تا دقیقتر بررسی بشه.

SELECT T1.uid,T2.Uid,T2.T2 FROM
T1 JOIN
(SELECT DISTINCT * From T2
WHERE t2=1
) AS T2
ON t1.uid=t2.uid


جدول T1 فقط شامل یک فیلد UID هست و در جدول T2 فیلد UID,T2 هست که با ترکیب هم مقادیر تکراری دارند که با استفاده از Derived Table ها من به صورت بالا براتون نوشتم.
فکر کنم با کمی تغییر بتونید به جواب دلخواه برسید.