PDA

View Full Version : عکس DISTINC



arkia
یک شنبه 08 اردیبهشت 1392, 00:03 صبح
من دنبال راه حلی هستم که فیلد های تکراری حذف شده با DISTINC رو ببینم. آیا دستوری هست که این کار رو انجام بده؟ خودم یه راه حل به ذهنم رسیده که تفریق یا تفاضل DISTINC رو از کل سطر ها بگیرم اما دستورش رو نمی دونم

rasoul_par
یک شنبه 08 اردیبهشت 1392, 01:30 صبح
MySQL به صورت Bag عمل میکنه به این معنی که Duplicate ها رو حذف نمیکنه، برای اعمال این عمل به صورت مشخص از ALL استفاده میکنم. همینطور باید گفت که MySQL از عملگرهای INTERSECT و EXCEPT پشتیبانی نمیکنه. برای عمل تفریق که گفتید میشه از مثال زیر استفاده کرد:
select t1.i1 from t1 left join t2 on t1.i1 = t2.i2 where t2.i2 is null
(فک میکنم گوگل میکردین خیلی بهتر و زودتر به نتیجه میرسیدین)

arkia
یک شنبه 08 اردیبهشت 1392, 03:23 صبح
من کلا یک جدول دارم گوگل رو که زیر و رو کردم! آره except هم جواب نداد

سعید صابری
یک شنبه 08 اردیبهشت 1392, 14:44 عصر
از این کد استفاده کن.در کد زیر رکوردهای که بیش از یک بار تکرار شده اند نمایش میده

SELECT id,COUNT(*)AS sa FROM table1
GROUP BY id
HAVING sa > 1

arkia
دوشنبه 09 اردیبهشت 1392, 22:50 عصر
از این کد استفاده کن.در کد زیر رکوردهای که بیش از یک بار تکرار شده اند نمایش میده

SELECT id,COUNT(*)AS sa FROM table1
GROUP BY id
HAVING sa > 1


این رو هم قبلا امتحان کردم اما جواب کار منو نمیده چون یک رکورد به نمایندگی از رکورد های تکراری نشون میده من همه رکورد های مثل هم رو کنار هم میخوام باید همهشو ببینم که تصمیم بگیرم کدومشو حذف کنم.

سعید صابری
سه شنبه 10 اردیبهشت 1392, 14:31 عصر
وقتی شما از یک فیلد دارای مقدار یکتا در group by استفاده کنید اینطور نخواهد بود

arkia
سه شنبه 10 اردیبهشت 1392, 21:46 عصر
وقتی شما از یک فیلد دارای مقدار یکتا در group by استفاده کنید اینطور نخواهد بود

پس راه حل چیه؟

سعید صابری
سه شنبه 10 اردیبهشت 1392, 22:32 عصر
راه حل گفتم.شما در قسمت Group by یک فیلد که تکراری نمی پذیره یا نداره مثل فیلد Id جدولتون بزارید بعد نتیجه ببینید