[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите создать запрос
XELAD
Доброго времени суток!
Имеется таблица mysql с тремя столбцами: Sender, Recipient, Thing. Все типа INT. Sender & Recipient индексированы, первичного ключа нет.
Цель таблицы: одному Recipient от Sender присылается Thing.
Случилось так, что основное условие этой таблицы было нарушено php запросом: от одного Sender для другого Recipient может быть только одна запись.
Сейчас для некоторых Recipient от одних и тех же Sender есть несколько записей с разными Thing.
Вопрос: как из данной таблицы выбрать неуникальные записи, т.е. записи, Sender & Recipient которых совпадают (не между собой, а между записями). И оставить из них записи с самым большим Thing.

Буду очень благодарен за помощь!
FatCat
Цитата (XELAD @ 26.08.2014 - 16:45)
первичного ключа нет

Это усложняет задачу.

ИМХО, проще пересобрать всю таблицу.

_____________
Бесплатному сыру в дырки не заглядывают...
XELAD
Задумывалось, что от одного Sender может быть по одной записи для разных Recipient. Т.е Sender как первичный ключ не подходит, Recipient тоже - получатель мог быть один от разных отправителей, значит записей с одним и тем же Recipient - несколько.
Цитата
пересобрать всю таблицу
А можно чуть подробнее?

Как я понимаю, одним запросом SELECT абсолютно всё из данной таблицы, в другую пустую таблицу INSERT, если нет записи с такими Sender & Recipient, либо UPDATE, если Thing меньше предоставляемой.
Верно ли я мыслю, и сколько на это уйдёт времени, если записей 10к?
T1grOK
Цитата (XELAD @ 26.08.2014 - 15:05)
Задумывалось, что от одного Sender может быть по одной записи для разных Recipient. Т.е Sender как первичный ключ не подходит, Recipient тоже - получатель мог быть один от разных отправителей, значит записей с одним и тем же Recipient - несколько.

А PRIMARY KEY на 2 поля не судьба?




_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
T1grOK
Цитата (XELAD @ 26.08.2014 - 13:45)
как из данной таблицы выбрать неуникальные записи, т.е. записи, Sender & Recipient которых совпадают

Наводка GROUP BY HAVING COUNT, да и через JOIN можно организовать собст-но.

_____________
Mysql, Postgresql, Redis, Memcached, Unit Testing, CI, Kohana, Yii, Phalcon, Zend Framework, Joomla, Open Cart, Ymaps, VK Api
XELAD
Цитата
PRIMARY KEY на 2 поля

С данным методом не знаком. Как он работает?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.