Как удалить дубликаты строк во внутреннем объединении в MySQL - PullRequest
0 голосов
/ 01 февраля 2019

Я хочу показать отчет о продавце. Мой sql ниже:

SELECT `tblproducts`.`product_id`   ,
`tbluserproducts`.`userproduct_id`, 
 `tblproducts`.`product_name`, 
 `tblproducts`.`category_id`,
 `tbluserproducts`.`sku`, 
 `tbluserproducts`.`min_qty`,  
 `tbluserproducts`.`offer_price`, 
 MIN(tbluserproducts.offer_price) AS minimum, 
 `tbluserproducts`.`from_date`, 
 `tbluserproducts`.`to_date`, 
 `tbluserproducts`.`stock`
    FROM `tblproducts` 
     JOIN `tbluserproducts` ON tblproducts.product_id = tbluserproducts.product_id 
     WHERE (`tbluserproducts`.`status`=1) AND (`tblproducts`.`status`=1) 
     AND (`tblproducts`.`category_id`='132') 
     GROUP BY `tbluserproducts`.`userproduct_id` 
    ORDER BY product_id DESC LIMIT 5

Я получаю вывод, как этот, потому что offer_price в tbluserproducts таблица такая же в product_id '9281'

enter image description here

но я хочу получить вот такой вывод

enter image description here

моя структура таблицы для tblproductsниже

  Column        Type             
  product_id    int(10) unsigned  Auto Increment 
  category_id   int(11) unsigned 
  product_name  varchar(255) 

моя структура таблицы для tbluserproducts ниже

  Column    Type  Comment
  userproduct_id  int(11) unsigned Auto Increment 
  sku varchar(255)  
  product_id  int(11) unsigned  
  min_qty int(11) unsigned  
  max_qty int(11) unsigned 
  offer_price double unsigned 
  from_date date  
  to_date date  
  stock int(11) 
  insert_date datetime   
  status  tinyint(3) NULL      0-inactive,1-active,2-disabled

1 Ответ

0 голосов
/ 01 февраля 2019

Поскольку вопрос, который вы разместили, недостаточно ясен, я собираюсь ответить на него, предполагая, что вы хотите всегда отображать первый отдельный столбец.

    SELECT DISTINCT ON (`tblproducts`.`product_id`) product_id,
    `tbluserproducts`.`userproduct_id`, 
    `tblproducts`.`product_name`, 
    `tblproducts`.`category_id`,
    `tbluserproducts`.`sku`, 
    `tbluserproducts`.`min_qty`,  
    `tbluserproducts`.`offer_price`, 
    MIN(tbluserproducts.offer_price) AS minimum, 
    `tbluserproducts`.`from_date`, 
    `tbluserproducts`.`to_date`, 
    `tbluserproducts`.`stock`
    FROM `tblproducts` 
    JOIN `tbluserproducts` ON tblproducts.product_id = tbluserproducts.product_id 
    WHERE (`tbluserproducts`.`status`=1) AND (`tblproducts`.`status`=1) 
    AND (`tblproducts`.`category_id`='132') 
    GROUP BY `tbluserproducts`.`userproduct_id` 
    ORDER BY product_id DESC LIMIT 5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...