У меня есть представление, которое показывает данные нескольких разных объектов.
CREATE VIEW viewA AS
SELECT
fiel1, field2, field3, -- table 1
field4, field5, field6, -- table 2
field7, field8 -- table 3
FROM table1 t1
JOIN table2 t2 ON t1.t2id = t2.id
JOIN table3 t3 ON t1.t3id = t3.id
GO
Мои таблицы следующие:
CREATE TABLE table1 (
id int not null IDENTITY(1, 1),
field1 int not null IDENTITY(1, 1),
field2 int not null,
field3 int not null,
t2id int, -- foreign key, is nullable
t3id int -- foreign key, is nullable
);
CREATE TABLE table2 (
id int not null IDENTITY(1, 1),
field4 int not null,
field5 int not null,
field6 varchar not null
);
CREATE TABLE table3 (
id int not null IDENTITY(1, 1),
field7 int not null,
field8 varchar not null
);
Когда я заполняю table1 некоторыми данными и ничего в t2id, представление не заполняется данными, даже если идентификатор сам по себе не является обязательным. Когда я заполняю поля и добавляю идентификатор в t2id, данные отображаются правильно. Я пытался использовать функцию isnull в isnull(field7, null) as field7
, но это ничего не меняет.
Итак, возможно ли иметь представление, отображающее нулевое значение, даже если само поле не допускает значения NULL, но ссылки является ? (Я также пробовал использовать поле, допускающее значение NULL, но это не сработало).