我试图比较两个表,SQL Server,以验证一些数据.我想从两个表中返回所有行,其中数据在一个或另一个中.从本质上讲,我想表明所有的差异.我需要检查三个数据,FirstName,LastName和Product.
我对SQL很新,似乎很多我发现的解决方案都让事情变得复杂.我不必担心NULL.
我开始尝试这样的事情:
SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data]
WHERE ([First Name] NOT IN (SELECT [First Name]
FROM [Real Data]))
Run Code Online (Sandbox Code Playgroud)
我在进一步考虑这个问题时遇到了麻烦.
谢谢!
编辑:
根据@treaschf的回答,我一直在尝试使用以下查询的变体:
SELECT td.[First Name], td.[Last Name], td.[Product Name]
FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d
ON td.[First Name] = d.[First Name] AND td.[Last Name] = d.[Last Name]
WHERE (d.[First Name] = NULL) AND (d.[Last Name] = NULL)
Run Code Online (Sandbox Code Playgroud)
但是当我知道td中至少有一行不在d中时,我一直得到0结果.
编辑:
好吧,我想我弄明白了.至少在我测试的几分钟内它似乎工作得很好.
SELECT [First Name], [Last Name]
FROM …Run Code Online (Sandbox Code Playgroud)