نمایش رکوردهای دو ستون از یک جدول و حذف تکراری ها

0 رأی
میانگین بازدید روزانه 0.6746 بازدید

جدولی با نام advertisements دارم با ستون و رکوردهای زیر


id         sitecatid      locationid
1             12            3
2             12            6
3             12            8
4             12            8 
5             12            8 
6             10            18 
7             13            20
8             14            21

میخوام نتیجه زیر را دریافت کنم 

sitecatid      locationid
    12            3
    10            6
    13            8
    14            18
                  20
                  21

از کوئری زیر استفاده کردم ولی نتیجه ایی که میخواستم نشد

SELECT DISTINCT sitecatid, locationid 
    FROM advertisements 
    WHERE MATCH (sitetitle,sitedescription) 
AGAINST ('$q' IN BOOLEAN MODE) AND status='approved' 

این طوری کوئری گرفتم درست کار میکنه و نتیجه دلخواهم رو میده ولی میخواستم از یه کوئری برا هر دو استفاده کنم:

$get = "SELECT *,sitecatid, COUNT(*) as count  FROM advertisements WHERE MATCH (sitetitle,sitedescription) AGAINST ('$q' IN BOOLEAN MODE) AND status='approved' $where GROUP BY sitecatid ORDER BY count DESC";
    $query = $mysqli->query($get);
    while($row = $query->fetch_array()) {
    $cats[] = $row;
    }
    $smarty->assign('cats',$cats);

 $get = "SELECT *,locationid, COUNT(*) as count  FROM advertisements WHERE MATCH (sitetitle,sitedescription) AGAINST ('$q' IN BOOLEAN MODE) AND status='approved' $where GROUP BY locationid ORDER BY count DESC";
    $query = $mysqli->query($get);
    while($row = $query->fetch_array()) {
    $location[] = $row;
    }
    $smarty->assign('locations',$location);
    }
سوال 2 ماه قبل در تالار برنامه نویسی توسط babavand (0 امتیاز)
ویرایش 2 ماه قبل توسط Saeed Zarinfam
قسمت select Query تون درسته و بدرستی از DISTINCT استفاده کردین. احتمالا بخاطر قسمت where است که نتیجه دلخواهتون رو نمی بینید.
نه قسمت  where  هم مشکلی نداره وقتی فقط  برای sitecatid از  DISTINCT  استفاده میکنم  نتیجه locationid  به هم میریزه و وقتی فقط برای locationid  از DISTINCT استفاده میکنم نتیجه sitecatid درست نشون داده نمیشه اگه از دو کوئری جداگانه یکی برای sitecatid و دیگری برای locationid  استفاده کنم نتیجه دلخواهم رو میگیرم فقط میخواستم از یک کوئری استفده کنم که دو بار به دیتابیس درخواست نداده باشم
شما وقتی از DISTINCT استفاده می کنید، فقط برای یک ستون اعمال نمیشه بلکه برای تمام ستون هایی که در select دارید اعمال میشه. این query جواب میده:

SELECT DISTINCT sitecatid, locationid
    FROM advertisements
نه جواب نداد

سوال های مشابه

0 رأی
1 جواب میانگین بازدید روزانه 0.1534 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.32238 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.08100 بازدید
0 رأی
2 جواب میانگین بازدید روزانه 0.1118 بازدید
سوال 3 سال قبل در تالار برنامه نویسی توسط IMANAZADI (67 امتیاز)
0 رأی
1 جواب میانگین بازدید روزانه 0.0557 بازدید
سوال 3 سال قبل در تالار برنامه نویسی توسط IMANAZADI (67 امتیاز)
+1 رأی
1 جواب میانگین بازدید روزانه 0.26420 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.31406 بازدید
0 رأی
1 جواب میانگین بازدید روزانه 0.11171 بازدید
کانال تلگرام جواب یاب
...