sql запрос и вывод уникальных записей

479
07 февраля 2017, 20:03

Здравствуйте.Имеется БД со структурой:

  1. id
  2. name
  3. data_id

где data_id может быть одинаковой величиной.Имеем данные:

  1. 1,запись 1, 1
  2. 2,запись 2, 5
  3. 3,запись 3, 1
  4. 4,запись 4, 8
  5. 5,запись 5, 1
  6. 6,запись 6, 1

Нужно что составить запрос что бы получить такие данные:

  1. 1,запись 1, 1
  2. 2,запись 2, 5
  3. 4,запись 4, 8

Как составить такой запрос?

Answer 1

Если неважно какую именно строку нужно получить с каждым data_id, следующий запрос выдаст последнюю для каждого:

SELECT * FROM t1 group by data_id

Можно добавить постусловие HAVING чтобы определиться с этим:

SELECT * FROM t1 group by data_id having min(id)

Fiddle

Answer 2
select * from myTable where id in (select min(id) from myTable group by data_id)

пример на sqlfiddle

READ ALSO
Какие существуют “события”?

Какие существуют “события”?

Большинство событий, на которые реагирует прикладная программа с графическим пользовательским интерфейсом, происходят при взаимодействии...

432
Загрузить или сделать фото [требует правки]

Загрузить или сделать фото [требует правки]

Есть две кнопки: загрузить фото с устройства и сделать его с камерыКаким образом это реализуется? Не нужно за меня код писать, сама логика...

404
Как в клиент-серверном приложении на сокетах узнать, что клиент завершил соединение?

Как в клиент-серверном приложении на сокетах узнать, что клиент завершил соединение?

Клиент какое-то время работает с сервером на сокетахКлиент принимает решение завершить работу(например, аварийное завершение повисшего...

667
Libgdx псевдо 3d дорога

Libgdx псевдо 3d дорога

Создаю дорогу по примеру http://wwwextentofthejam

489