|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Добрый день, возник теоретический вопрос. Есть таблица1 kod 1 1 2 3 и таблица2 kod 1 1 2 5 6 в запросе пишем следующее: Код: vbnet 1. 2.
и на выходе получаем следующее: Таблица2.id Таблица1.id 1 1 1 1 1 1 1 1 2 2 Вопрос в следующем. Можно ли каким либо образом без использования группировки сделать так чтобы выводилось именно пересечение, т.е. на выходе должны получить: Таблица2.id Таблица1.id 1 1 1 1 2 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 09:48 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Выводится именно пересечение. Ибо в этих таблицах отсутствует возможность идентифицировать записи. Можно в подзапросе нумеровать дубликаты, и при связывании требовать равенства не только кода, но и номера по порядку. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.01.2020, 11:13 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ Добрый день, возник теоретический вопрос. ... Вопрос в следующем. Можно ли каким либо образом без использования группировки сделать так чтобы выводилось именно пересечение, т.е. на выходе должны получить: Таблица2.id Таблица1.id 1 1 1 1 2 2 Может так? Код: vbnet 1. 2. 3.
Или я что-то "недогоняю"??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 09:57 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
drafty Или я что-то "недогоняю"??? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 14:07 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Akina drafty Или я что-то "недогоняю"??? ...зафига? В результате Код: vbnet 1. 2. 3.
должно получиться искомое (логика выполнения запроса прилагается в иллюстрации) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 14:46 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_, а что должно остаться в следующем случае Таблица2 Таблица11 11 11 43 22 2 какая единичка или двойка должны остаться ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 17:19 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, наверное, две единицы из правой таблицы (с такими же единицами из левой таблицы) и одна двойка из левой таблицы (с такой же двойкой из правой таблицы) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 17:23 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
drafty ...зафига? drafty должно получиться искомое Коллега вам сказал, воссоздайте и удивитесь. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 17:25 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Прогер_самоучка drafty ...зафига? drafty должно получиться искомое Коллега вам сказал, воссоздайте и удивитесь. ...вы меня заинтриговали.В поннедел обязательно проэкспериментирую... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 20:31 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_ Есть таблица1 kod 1 1 2 3 и таблица2 kod 1 1 2 5 6 Хотя в первой таблице оно должно быть уникальным а во второй полем связи со стороны многие (не уникальное) Я так думаю! (Мимино) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 21:14 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
drafty должно получиться искомое (логика выполнения запроса прилагается в иллюстрации) sdku Может я чё не понимаю:а что кодовые поля в обоих таблицах не уникальны?? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.02.2020, 21:41 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Akina ....А где написано, что "код" обязан быть уникальным? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2020, 00:25 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
sdku А как идентифицировать записи? ... |
|||
:
Нравится:
Не нравится:
|
|||
16.02.2020, 16:50 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Прогер_самоучка drafty ...зафига? drafty должно получиться искомое Коллега вам сказал, воссоздайте и удивитесь. Только что воссоздал,и получилось следующее: 11 11 11 22 две записи с единицами оказались лишними... А по сему,по совету коллеги Akina в 22080378 - иду читать ещё раз про фантомные умножения при джойнах по неуникальным полям... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 08:13 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
drafty Прогер_самоучка пропущено... для надо пропущено... лично вам? Коллега вам сказал, воссоздайте и удивитесь. Только что воссоздал,и получилось следующее: 11 11 11 22 две записи с единицами оказались лишними... А по сему,по совету коллеги Akina в 22080378 - иду читать ещё раз про фантомные умножения при джойнах по неуникальным полям... т.е. получилось: 11 11 11 11 22 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 08:29 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
_s_e_r_g_e_, Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 10:35 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Rivkin Dmitry , а откуда Вы намерены получить NULL, если ни одно значение не NULL, и ни одного LEFT JOIN? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 10:51 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Akina, Если в таблица2 нет значений кода из таблица1 (select kod from таблица2 as t2 where t2.kod = t1.kod) вернет null Нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:22 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Надо уточнить: Код: sql 1. 2. 3. 4. 5.
иначе может быть ошибка... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:29 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Надо уточнить: Код: sql 1. 2. 3. 4. 5.
иначе может быть ошибка... ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:31 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Rivkin Dmitry Если в таблица2 нет значений кода из таблица1 (select kod from таблица2 as t2 where t2.kod = t1.kod) вернет null Нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:50 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
В любом случае для решения задачи необходимо нумеровать записи с равным kod - т.е. преобразовывать данные из kod1123 в kod num11122131 и соответственно для второй таблицы kod num1112215161 И после этого уже связывать по t1.kod=t2.kod AND t1.num=t2.num . Только так и можно получить требуемый результат. Увы, но нумерация неуникальных записей в MS Access - это рожание ежа против шерсти. Ибо оконных фанкций тут нет от слова "совсем". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 11:54 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Akina, Это не твой совет - попробовать? Моя идея состоит в том, чтобы обойти куртезианское умножение в том случае, когда коды совпадают, поэтому, первая выборка делается из первой таблицы (можно таблицы поменять местами). Затем идет проверка в каждой строчке на наличие такого же кода во второй таблице. Если его не существует, результат из общего запроса отбрасывается. Это не тривиальный джоин... Вот результат запроса: kod1 kod21 11 12 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 12:13 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
Akina sdku А как идентифицировать записи? Akina ...Увы, но нумерация неуникальных записей в MS Access - это рожание ежа против шерсти. Ибо оконных фанкций тут нет от слова "совсем". ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 12:35 |
|
inner join пересечение данных
|
|||
---|---|---|---|
#18+
sdku Немного противоречиво,однако Код: vbnet 1.
ничем и никак не противоречиво. Rivkin Dmitry Вот результат запроса ... |
|||
:
Нравится:
Не нравится:
|
|||
17.02.2020, 15:33 |
|
|
start [/forum/topic.php?fid=45&startmsg=39917693&tid=1610224]: |
0ms |
get settings: |
10ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 164ms |
0 / 0 |