DISTINCT не на все поля

Армян

Новичок
DISTINCT не на все поля

Здрасьте!

Есть задача, немогу никак решить. Есть таблица с полями
id, date, currency1_id, currency1_value, currency2_id, currency2_value

Задача вот в чем: надо выбрать записи с уникальными currency1_id, currency2_id.
Делаю так:
PHP:
SELECT DISTINCT `currency1_id`, `currency2_id`, `currency1_value`, `currency2_value`  FROM `peg_point`
но DISTINCT относится ко всем полям, а мне надо только к двум. Подскажите как можно сделать такой запрос.
Пасиба

-~{}~ 25.08.07 13:25:

Сделал выборку так:
PHP:
SELECT * FROM `peg_point` WHERE
            `currency1_id`='".addslashes($currency_id)."' OR
            `currency2_id`='".addslashes($currency_id)."'
            GROUP BY `currency1_id`, `currency2_id`
но проблема теперь в том что если сущ. записи типа
PHP:
date              | currency1_id | currency2_id | ... 
2007-08-21           1                        8
2007-08-25           1                        8
то выбирается запись, с датой 2007-08-21, а мне нужно сделать, чтобы выбирались новые. ORDER BY не помогает естественно.
 

Mols

Новичок
если я всё правильно понял, то записи в таблице не редактируются а добавляются... тогда чем больше `date` тем больше `id`... Думаю я бы сделал так в такой ситуации.
---------------------
select * from `peg_point` as p_g
inner join
(select max(id) as id from `peg_point` group by `currency1_id`, `currency2_id`) as tt
on p_g.id = tt.id;
---------------------
 

Армян

Новичок
не совсем правильно! да, они добавляются, но дата на момент добавления может быть любой, т.е. не обязательно текущей... поэтому
тогда чем больше `date` тем больше `id`
не верно.

Но наверно можно будет id заменить на date.
В любом случае спасибо. буду пробовать
 

Mols

Новичок
Просто заменить не получится...
Но если у вас дата произвольная, то это не очень то и правильно... по идее. Может оказаться несколько записей на одну дату. Как тогда быть ?
В общем я к тому, что может надо подумать над структурой самой таблички и общей логикой действий. А то решения какие-то чересчур тяжёлые просматриваются )))
 
Сверху