سانسور کردن رکوردهای تکراری

zorig4fun

Member
سلام من يک فرم دارم و دوستان ميان مطلب مينويسند.
حالا من در صفحه اصلی خود يک بخشی درست کردم که اخرين جوابهای پست را در ان نشان ميدهد.
مشکل من اين است که اگر دو نفر به يک توپيک جواب داده باشند ان يک تپيک دو بار نمايش داده ميشود.
ميخواستم که دوستان راهنمائی کنند چکار کنم که اگر به يک توپيک به دفعات جواب داده ميشود اسم توپيک يک بار نمايش داده شود.
با تشکر
 

m_ziba

Member
سلام
query که داری میدی به DataBase ایراد داره. query رو دقیق بنویس تا راهنماییت کنیم.
 

zorig4fun

Member
فکر کنم توضيحاتی که دادم کامل نبوده
من از اکسس استفاده ميکنم.
در ديتابيس من تيبل tblTopic / Subject قرار دارد و در tblThread / Message قرار گرفته و بقيه اطلاعات.
حالا من امدم رکردهای اين دو تيبل را درخواست کردم و گفتم که بر اساس تاريخ برام بچينه بعد توسط loop اولين ۱۰ رکرد را چاپ ميکنم.
حالا مشکل اين است که اگر دو کاربر به يک توپيک جواب بدهند در tblThread دو رکرد پشت سر هم ايجاد ميشود و در موقع چاپ کردن اين دو رکرد چاپ ميشوند.
فکر کنم يک کد لازم دارم که در loop استفاده کنم که رکوردها را با هم مقايسه کند اگر رکردی Topic_ID ان با رکرد های قبلی يکی باشد از چاپ کردن ان صرف نظر کند و به ريکرد بعدی برود.
با تشکر
 

zorig4fun

Member
مرسی از راهنمائی
حالا فکر نميکند که با استفاده از اين روش اگر کاربر در دو تپيک مطلب بنويسد دومين تپيک نمايش داده نمی شود؟
 

mazoolagh

Active Member
شما میتونین اول با select distinct فقط topicidها رو انتخاب کنین و بعد رکوردهایی رو نشون بدین که topicidهاشون در اون لیست هست (با in)
البته راههای دیگه هم داره.اگر ساختار جدول یا خود جدول رو با دیتای نمونه بگذارین بهتر هست.
 

zorig4fun

Member
خوب من تا حالا از select distinct استفاده نکردم فقط شما که گفتيد من گشتم مطالبی را پيدا کردم که کامل نبود.
لطفا بگيد ايا ميشه فقط يک field از جدول را از اين روش استفاده کرد؟
اگر ميشه اطفا مثالی بزنيد.چون من حرفه ای نيستم.
با تشکر
 

mazoolagh

Active Member
distinct روی مجموعه فیلدهایی که select شدن عمل میکنه. اگر * بگذارین کلا رکوردهای تکراری رو نمیاره چون * بمعنای همه فیلدهاست. اگر یک یا چند فیلد باشن فقط روی همون یک یا چند فیلد عمل میکنه.

برای مثال شما دیتابیس northwind رو که باحتمال زیاد روی کامپیوترتون هست باز کنین و در جدول orders روی فیلدهایی مثل customerid یا productid با و بدون distinct امتحان و به نتایج دقت کنین.

کد:
select customerid from orders order by customerid


کد:
select distinct customerid from orders order by customerid
 

جدیدترین ارسال ها

بالا