Как объединить данные столбца трех таблиц Sql с помощью Join - PullRequest
0 голосов
/ 28 июня 2019

У меня есть четыре таблицы, в которых я должен присоединиться к столбцу данных.Я использовал кросс-соединение, и в конце я получаю некоторые значения, повторяющиеся дважды или несколько раз.Пожалуйста помоги.

То, что я пробовал в своем коде сценария sql:

CREATE VIEW [dbo].[View_1]
AS
SELECT dbo.Table3.ID, dbo.Table4.Usertyp, dbo.Table4.reserved, dbo.Table2.Lotnumber, dbo.Table3.Current, dbo.Table3.Reading, dbo.Table1.LoginName, dbo.Table3.Start
FROM     dbo.Table1 CROSS JOIN
                  dbo.Table2 CROSS JOIN
                  dbo.Table3 CROSS JOIN
                  dbo.Table4
GO

Затем, когда я выполняю, я получаю ввод данных несколько раз, я делаю что-то не так.Пожалуйста помоги.Мне нужен был идентификатор из таблицы 3, Usertyp из первой строки Table4, зарезервированный из table4, Lotnumber из данных первой строки Table2.Как я могу взять все последовательные записи в новую таблицу, используя данные четырех таблиц.Спасибо.

Table1 Table2 Table3 Table4

Конечный результат.Мне нужен идентификатор из таблицы 3 и соответствующие данные из других столбцов таблицы: конечный результат должен выглядеть следующим образом: Table5

1 Ответ

1 голос
/ 28 июня 2019

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

Следующее должно помочь вам туда добраться, однако, недостаточно информации, чтобы соответствовать таблице 4. Поэтому, как только вы это поймете, вы сможете продолжить этот подход, который я перечисляю:

CREATE VIEW [dbo].[View_1]
AS
SELECT   dbo.Table3.ID
       , dbo.Table4.Usertyp
       , dbo.Table4.reserved
       , dbo.Table2.Lotnumber
       , dbo.Table3.Current
       , dbo.Table3.Reading
       , dbo.Table1.LoginName
       , dbo.Table3.Start
FROM       dbo.Table3 t3
INNER JOIN dbo.Table1 t1 on t3.UserID = t1.ID
INNER JOIN dbo.Table2 t2 on t3.LotID = t2.LotID
INNER JOIN dbo.Table4 ....
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...