Страница 1 из 1

Sql запрос. Откинуть одинаковые записи

Добавлено: 27 апр 2007, 12:02
Dr_Grizzly
Всем привет! Такая вот штука, две таблицы. В одной список фамилий в другой список кредитов каждого ФИО, т.е у одного ФИО может быть не один кредит. Нужно сделать sql запрос по второй таблице в котором увидим все фамили в одном экземпляре, а не по две фамилии одинаковые, если у него два кредита. Ваще такое реально?

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 27 апр 2007, 12:27
Absurd
В SQL можно вытащить любой срез данных.

1) select distinct(name) from .... where ....
2) select name,
count(credit) as numberOfCredits
from .... where ....
group by name having numberOfCredits > 0

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 27 апр 2007, 14:04
Naeel Maqsudov
3) select * from первая_таблица
where exists(select * from кредиты where кредиты.fk=первая_таблица.pk)

Т.е., в переводе с SQL на русский: выбрать людей у которых существует хоть один кредит. (вместо fk и pk - указываются поля, по которым связаны таблицы)

Есть и другие варианты.

Выбирать надо тот, который работает быстрее.
Какой работает быстрее оценить можно зная, какой SQL-сервер, какова структура таблиц, какие есть индексы.

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 09:11
Dr_Grizzly
&quot писал(а):select distinct(name) from .... where ....
СУПЕР! Работает!
&quot писал(а):select * from первая_таблица
where exists(select * from кредиты where кредиты.fk=первая_таблица.pk)
Этот тоже работает, но не в моем случае ;) У меня струкртура связей чуток не такая, а так тоже СПАСИБО!!!

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 12:57
Dr_Grizzly
а теперь нужно наоборот :) показать только те записи у которые более 1-ого кредита :) а остальные убрать :)

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 13:24
Dr_Grizzly
есть такая таблица: в ней есть район, фио, номер кредита. структура следующая:
альменево/фио1/номерх
альменево/фио1/номерy
альменево/фио2/номерz
альменево/фио3/номерs
варгаши/фио4/номерv
варгаши/фио4/номерk
варгаши/фио5/номерl

номера кредитов уникальны. нужен запрос который дал бы все фио(без повторений) по отдельному району, и второй запрос который дал бы все номера кредитов по району

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 13:28
Dr_Grizzly
т.е. в данном примере по первому запросу я должен получить данные например по Альменево следующие:
ФИО1
ФИО2
ФИО3
по второму запросу данные
номерx
номерy
номерz
номерs

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 14:23
Игорь Акопян
ты задавать хочешь район что-ли?

кстати переношу в Sql

Re: Sql запрос. Откинуть одинаковые записи

Добавлено: 28 апр 2007, 15:28
Хыиуду
select distinct fio from mytable where district='Альменево' group by fio
И то же самое с номерами вместо fio