устранение избыточности при группировании двух столбцов

0

Ниже мой стол:

Изображение 174551

Я хочу получить результаты на основе значений sender и Reciver и сгруппировать их таким образом, чтобы у меня не было избыточных результатов.

Пример:

отправитель = 2
reciver = 1

reciver = 2
Отправитель = 1

В приведенном выше примере оба результата не должны отображаться, должен отображаться только один результат.

Я использую mysql, и код, который я использую, приведен ниже, что дает несколько результатов, как показано на рисунке.

SELECT Mid,sender,Reciver 
FROM 'tbl_messages'
WHERE sender=1 or Reciver = 1 
GROUP by Reciver,sender or sender,Reciver;
  • 0
    Вы не упомянули, какой из них вы хотели сохранить
Теги:
select

1 ответ

0
Лучший ответ

Попробуй это:

SELECT newSender, newReceiver/*some aggregate functions or access other comlumns*/ FROM (
    SELECT Mid,/* add more columns if needed*/
           case when sender < reciver then sender else receiver end newSender,
           case when sender > reciver then sender else receiver end newReceiver
    FROM 'tbl_messages'
    WHERE sender = 1 or Reciver = 1 
) a GROUP by newSender, newReceiver;
  • 0
    Если вы не считаете, что середина имеет отношение к проблеме, не включайте ее в решение
  • 0
    @Strawberry Это может быть (и, вероятно, имеет) отношение к OP, поэтому я включил его в свое решение. Но спасибо за замечание :)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню