SQL: внешний ключ в таблице A ссылается на первичный ключ в таблице B, но значения не совпадают - PullRequest
0 голосов
/ 28 января 2020

У меня есть две таблицы: Employee и Salary Grade.

В Employee есть столбец SalBand (FK); этот столбец имеет значения «1», «2», «3» и «4».

В Salary Grade, первый столбец SalaryBand (PK), этот столбец имеет значения «Band 1» , «Band 2», «Band 3», «Band 4».

Я не могу создать правильную связь между этими таблицами, так как значения разные, одна имеет только цифры, а другая имеет текст и цифры.

Как мне создать связь между этими таблицами? Тип данных для обоих столбцов в настоящее время varchar или shorttext, как Microsoft Access называет его. Я использую SQL.

Screenshot of the tables

Ответы [ 2 ]

0 голосов
/ 08 февраля 2020

Хорошо иметь возможность изменять архитектуру и данные для разрешения чего-то подобного. Это был бы путь к go в первую очередь. Если вы не смогли изменить данные и / или архитектуру, вы можете

select
    *
  from Employee e
 inner join Salary_Grade sg on e.SalBand = replace( sg.SalaryBand, 'Band ', '' )
0 голосов
/ 28 января 2020

Сначала обрежьте обе таблицы, а затем создайте отношение PK FK. После этого вставьте записи в обе таблицы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...