powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select один к одному
7 сообщений из 7, страница 1 из 1
Select один к одному
    #34620736
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица A Id, pole_a
B ID, pole_b
Каждой записи ID в таблице A соответствуют неск. записей ID в таблице B
Мне нужно написать запрос по сути отражающий связь 1 к 1, т.е чтобы 1 записи таблицы A соответствовала 1 записи таблицы B (не важно какая)
Я сделал вот так
Код: plaintext
select A.id, A.pole_a, B.pole_b from A where A.id in (select distinct B.id from B)

Но можно ли это сделать одним запросом без вложенных ?
...
Рейтинг: 0 / 0
Select один к одному
    #34620752
И чем же вложенный запрос ко двору не пришелся?
...
Рейтинг: 0 / 0
Select один к одному
    #34620766
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JoseЯ сделал вот так
Код: plaintext
select A.id, A.pole_a, B.pole_b from A where A.id in (select distinct B.id from B)
У тебя вообще неправильный запрос, если ответ совпал с ожидаемым - случайность, т.к. на всю выборку B.pole_b должно иметь одно и тоже значение, т.к. таблицы B нет во from

Попробуй так:
Код: plaintext
select A.id, min(A.pole_a) as pole_a, min(B.pole_b) as pole_b from A inner join B on A.Id = B.Id group by A.id
...
Рейтинг: 0 / 0
Select один к одному
    #34620875
Jose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.И чем же вложенный запрос ко двору не пришелся?
Вложенный запрос накладывает дополнительную тормознутость, если учесть, что в запросе может учавствовать не 2 таблицы а хотя бы 5, и записей в каждой...о-го-го!!!
Если знаешь как - подскажи ))

Dima T У тебя вообще неправильный запрос, если ответ совпал с ожидаемым - случайность, т.к. на всю выборку B.pole_b должно иметь одно и тоже значение, т.к. таблицы B нет во from

Проверял? ))
...
Рейтинг: 0 / 0
Select один к одному
    #34620907
Обычно запросы с IN (select ...) хорошо разворачиваются в обычный left join

Код: plaintext
select A.id, A.pole_a, B.pole_b from A left join select distinct B.id from B

Но я не уверен в DISTINCT
...
Рейтинг: 0 / 0
Select один к одному
    #34620923
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Select один к одному
    #34621794
kolobok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Если есть необходимость выбирать _любую_ запись из B, добавь туда поле, например, NOMER типа INT, залей туда номер строки (REPLACE ALL имя_поля WITH RECNO()). Ну и теперь при выборке группируешь и отбираешь по нему MAX или MIN.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Select один к одному
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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