ФорумРазработкаБазы данных → Извлечь уникальные по одному полю, не уникальные по другому

Извлечь уникальные по одному полю, не уникальные по другому

  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 16 апреля 2008 г. 10:00

    Как можно извлечь записи из таблицы, по одному полю - уникальные, по остальным - все?
    Если юзать SELECT DISTINCT `field1`, `field2` FROM … то извлекает уникальные сразу по двум полям, а нужно только по первому. Возможно, с помощью UNION? Но тогда как определить где извлечены уникальные, а где нет?
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 16 апреля 2008 г. 21:21, спустя 11 часов 20 минут 49 секунд

    SELECT DISTINCT `field1`, `field2`, count(*) FROM … GROUP BY `field1`

    там где count<>1 - не уникальные
  • AlexB

    Сообщения: 4290 Репутация: N Группа: в ухо

    Spritz 18 апреля 2008 г. 13:44, спустя 1 день 16 часов 23 минуты

    А зачем в запросе DISTINCT?
    Надо просто GROUP BY field1, если я правильно понял вопрос.

    В общем, для простоты запомните так: DISTINCT - это тоже самое что GROUP BY по всем полям запроса.
  • ghost

    Сообщения: 883 Репутация: N Группа: Джедаи

    Spritz 19 апреля 2008 г. 12:45, спустя 23 часа 1 минуту 40 секунд

    да, дистинкт лишний
    просто ломало писать запрос - пришлось скопировать, и дистинкт соотв остался.
    да, лишний, очивидно :)
  • sap

    Сообщения: 2701 Репутация: N Группа: Кто попало

    Spritz 19 апреля 2008 г. 14:09, спустя 1 час 23 минуты 15 секунд

    Все понял, спасибо.

Пожалуйста, авторизуйтесь, чтобы написать комментарий!