powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
4 сообщений из 4, страница 1 из 1
Помогите с запросом
    #32425331
Есть две таблицы
Код: plaintext
1.
2.
peoples (id, name)
phones (people_id, phone_no)

одному человеку могут соответствовать много телефонов.

как сделать запрос, который будет выбирать только один из телефонов ?
(я могу сделать это с помощью max(phone_no) group by people_id), но в реальной задаче такое решение не очень подходит (там полей больше и по каждому делать max вроде не совсем правильно)
...
Рейтинг: 0 / 0
Помогите с запросом
    #32425334
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Есть критерий, по которому надо выбирать? Если есть, то какой? Если нет, то чем плохо Max?
...
Рейтинг: 0 / 0
Помогите с запросом
    #32425335
критерия нет никакого.
просто в phones например может быть еще поле, например code

и два max работают неправильно, мне нужно выбрать одно совпадение на
peoples.id и phones.people_id
но чтобы все поля phones были в одной записи

---------------------------------------
С уважением, Каримбаев Тимур
...
Рейтинг: 0 / 0
Помогите с запросом
    #32425336
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Тогда так:

select ttt.* from
ttt inner join (select n, max(s1) as ms1 from ttt group by n) as tttgrouped
on ttt.n=tttgrouped.n and ttt.s1=tttgrouped.ms1

где:

ttt - таблица
n - то поле, по которому делается group by
s1 - то поле, по которому делается max
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Помогите с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]