Syf AK Ответов: 2

Есть ли возможность объединить 2 таблицы через пробел строку с int


У меня есть две таблицы, давайте назовем их таблицей а и таблицей В. Они выглядят так:

Что я уже пробовал:

A:
SLNAccessGroup    AssignedDoorGroups
1                 1 2 3 4 
2                 1 2
3                 1

B:
SlnDoorGroup
1
2
3
4


Я хочу присоединиться к AssignedDoorGroups с SlnDoorGroup

Dave Kreskowiak

В этом нет никакого смысла. Чтобы выполнить объединение, обе таблицы должны иметь что-то общее, обычно идентификаторы записей.

Вы не можете присоединить строковое поле к целочисленному полю. Оба типа полей должны совпадать. Хотя можно разобрать строку и получить из нее целое число, чтобы присоединиться к целочисленному полю другой таблицы, производительность будет действительно плохой.

Maciej Los

На основании какой логики?
Каков будет результат?

2 Ответов

Рейтинг:
16

OriginalGriff

Не делай этого так. Хотя это возможно сделать, это огромное упражнение faff - которое становится ужасно неэффективным.
Вместо этого таблица А должна иметь несколько строк, каждая из которых связывает одну SLNAccessGroup с одной AssignedDoorGroups:

A:
SLNAccessGroup    AssignedDoorGroup
1                 1 
1                 2 
1                 3 
1                 4 
2                 1
2                 2
3                 1
Тогда становится просто делать с ним большинство вещей.
Оставляя его таким, как он есть, и все, что вы пытаетесь сделать, помимо основных операций выбора и вставки, потому что ужасно сложно.

Вы хотите продолжить свой - очень плохой - дизайн данных, тогда вам придется прочитать это: Преобразование данных, разделенных запятыми в столбце, в строки для выбора[^] а затем измените его, чтобы начать делать то, что вы хотите. Но я сомневаюсь, что кто-то сделает все это за вас, так как это плохая идея-поддерживать плохие решения.