Я пытаюсь ссылаться на два первичных ключа из двух разных таблиц, но проблема в том, что они не совпадают из-за его длины символа.Как сопоставить две таблицы с разными длинами первичных ключей
Например, person.personid = '1234'
и department.personid = '12345'
.
Есть ли SQL-оператор, в котором я могу использовать первые 4 или 5 символов первичных ключей или есть ли какие-либо другие методы, которые я могу использовать.
ОБНОВЛЕНИЕ: Мои искренние извинения. Я имею дело с двумя таблицами. "dyndomrun.ddid"
имеет основной ключ, а "domainregion.domainid"
не имеет никакого первичного ключа и внешнего ключа. Таблица «dyndomrun» DDL устанавливается в "character varying"
и имеет 8 символов, тогда как таблица DDL «domainregion» также имеет значение «character variable», но имеет 10 символов.
Проблема: в таблице domainregion
есть несколько полей, которые необходимо соединить с первичным ключом в таблице dyndomrun
. Я не могу сделать это с помощью простой инструкции SQL, например, как показано ниже
SELECT domainregion.domainid, dyndomrun.ddid
FROM domainregion, dyndomrun
WHERE domainregion.domainid = dyndomrun.ddid
ORDER BY domainregion.domainid, dyndomrun.ddid;
Я попытался JOINS, ВНУТРЕННИЙ не JOINS, LIKE, ни один из них, кажется, работает. База данных, с которой я имею дело, основана на базе SQL, основанной на PostgreSQL.
Просьба сообщить.
Какой двигатель базы данных? MySQL? SQL Server? Oracle? Другие? – ean5533
Я бы создал таблицу сопоставления с столбцами p_person_id и d_person_id –
Как правило, вы не сопоставляете первичные ключи между таблицами - внешний ключ одной таблицы ** ссылается на первичный ключ ** другой таблицы ** - и эти два должны быть одинаковыми в их типе данных –