Sql запрос. Откинуть одинаковые записи
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
Всем привет! Такая вот штука, две таблицы. В одной список фамилий в другой список кредитов каждого ФИО, т.е у одного ФИО может быть не один кредит. Нужно сделать sql запрос по второй таблице в котором увидим все фамили в одном экземпляре, а не по две фамилии одинаковые, если у него два кредита. Ваще такое реально?
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 1228
- Зарегистрирован: 26 фев 2004, 13:24
- Откуда: Pietari, Venäjä
- Контактная информация:
В SQL можно вытащить любой срез данных.
1) select distinct(name) from .... where ....
2) select name,
count(credit) as numberOfCredits
from .... where ....
group by name having numberOfCredits > 0
1) select distinct(name) from .... where ....
2) select name,
count(credit) as numberOfCredits
from .... where ....
group by name having numberOfCredits > 0
2B OR NOT(2B) = FF
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
3) select * from первая_таблица
where exists(select * from кредиты where кредиты.fk=первая_таблица.pk)
Т.е., в переводе с SQL на русский: выбрать людей у которых существует хоть один кредит. (вместо fk и pk - указываются поля, по которым связаны таблицы)
Есть и другие варианты.
Выбирать надо тот, который работает быстрее.
Какой работает быстрее оценить можно зная, какой SQL-сервер, какова структура таблиц, какие есть индексы.
where exists(select * from кредиты where кредиты.fk=первая_таблица.pk)
Т.е., в переводе с SQL на русский: выбрать людей у которых существует хоть один кредит. (вместо fk и pk - указываются поля, по которым связаны таблицы)
Есть и другие варианты.
Выбирать надо тот, который работает быстрее.
Какой работает быстрее оценить можно зная, какой SQL-сервер, какова структура таблиц, какие есть индексы.
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
СУПЕР! Работает!" писал(а):select distinct(name) from .... where ....
Этот тоже работает, но не в моем случае" писал(а):select * from первая_таблица
where exists(select * from кредиты where кредиты.fk=первая_таблица.pk)

Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
а теперь нужно наоборот
показать только те записи у которые более 1-ого кредита
а остальные убрать 



Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
есть такая таблица: в ней есть район, фио, номер кредита. структура следующая:
альменево/фио1/номерх
альменево/фио1/номерy
альменево/фио2/номерz
альменево/фио3/номерs
варгаши/фио4/номерv
варгаши/фио4/номерk
варгаши/фио5/номерl
номера кредитов уникальны. нужен запрос который дал бы все фио(без повторений) по отдельному району, и второй запрос который дал бы все номера кредитов по району
альменево/фио1/номерх
альменево/фио1/номерy
альменево/фио2/номерz
альменево/фио3/номерs
варгаши/фио4/номерv
варгаши/фио4/номерk
варгаши/фио5/номерl
номера кредитов уникальны. нужен запрос который дал бы все фио(без повторений) по отдельному району, и второй запрос который дал бы все номера кредитов по району
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
т.е. в данном примере по первому запросу я должен получить данные например по Альменево следующие:
ФИО1
ФИО2
ФИО3
по второму запросу данные
номерx
номерy
номерz
номерs
ФИО1
ФИО2
ФИО3
по второму запросу данные
номерx
номерy
номерz
номерs
Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
ты задавать хочешь район что-ли?
кстати переношу в Sql
кстати переношу в Sql

select distinct fio from mytable where district='Альменево' group by fio
И то же самое с номерами вместо fio
И то же самое с номерами вместо fio
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.