Я новичок в SQL Server, поэтому прошу вас не обижаться на глупый вопрос.SQL Server full external объединяет несколько отключенных таблиц
У меня есть шесть несвязанных таблиц (таблица1, таблица2 (два столбца для запроса), table3, table4, table5, table6 (это дочерняя таблица таблицы 5)) в моей базе данных.
Это разнородные таблицы, и я хочу использовать один запрос для поиска данных из одного столбца в каждой таблице, а если он найден, то он заполняется в строках.
Я бегу следующий запрос
SELECT
table1.*
, table2.*
, table3.*
, table4.*
, table5.*
, table6.*
FROM
dbo.table1
FULL OUTER JOIN
dbo.table2 ON table1.col1 = table2.col_A OR table1.col1 = table2.col_B
FULL OUTER JOIN
dbo.table3 ON table2.col_A = table3.col_F OR table2.col_B = table3.col_F
FULL OUTER JOIN
dbo.table4 ON table3.col_F = table4.col_I
FULL OUTER JOIN
dbo.table5 ON table4.col_I = table5.col_N
INNER JOIN
dbo.table6 ON table5.col_N = table6.col_U OR table5.col_N = table6.col_V
WHERE
table1.col1 LIKE '%' + USERINPUT + '%'
OR table2.col_A LIKE '%' + USERINPUT + '%'
OR table2.col_B LIKE '%' + USERINPUT + '%'
OR table3.col_F LIKE '%' + USERINPUT + '%'
OR table4.col_I LIKE '%' + USERINPUT + '%'
OR table5.col_N LIKE '%' + USERINPUT + '%'
Однако я не получаю результаты из всех таблиц. Но когда я бегу индивидуально, я получаю правильные результаты. Например,
SELECT table1.*
FROM dbo.table1
WHERE
table1.col1 LIKE '%' + USERINPUT + '%'
SELECT table5.* , table6.*
FROM
dbo.table5
INNER JOIN
dbo.table6 ON table5.col_N = table6.col_U OR table5.col_N = table6.col_V
WHERE
table5.col_N LIKE '%' + USERINPUT + '%'
Вся помощь признательна за решение проблемы. Короче хочется иметь один запрос, который проходит по всей таблице и выводит соответствующие строки ТОЛЬКО
Почему последнее соединение является внутренним соединением? –