我有四个表,在这些表中我必须加入“数据”列。我使用了交叉连接,最后我得到了一些重复两次或多次的值。请帮忙。
我在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中的ID,表4第一行中的Usertyp,表4中的ID,表2第一行数据中的批号。我如何使用四个表数据将所有串行条目带到一个新表中。谢谢。
答案 0 :(得分:1)
问题是您正在使用交叉联接。不要那样做这将每种组合的每个表的每一行组合在一起。那会很快变得丑陋。
以下内容将帮助您到达那里,但是,没有足够的信息来匹配表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