我有一个挑战,我没有在过去两天使用存储过程和SQL 2008克服。表减法挑战
我采取了几种方法,但必须失败。
一个非常有趣的appraoch使用表减法。
这真的是关于表减法。
我想知道如果你能帮我解决这个问题。
我们的难题是:
两个表1Testdbÿ2Testdb。
我的第一步是在表2Testdb中为一个给定的个体([2Testdb] .Bus_id)选择ID关系([2Testdb] .Acc_id)。然后查询表1Testdb中的记录,而不是从2Testdb中选择我的原始选择。
但是其他方法是受欢迎的。
数据与结构:
USE [Challengedb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [DBO]。[1Testdb](
[Acc_id] [uniqueidentifier] NULL
[Name] [Varchar(10)] NULL
)ON [PRIMARY]
GO
CREATE TABLE [DBO]。[2Testdb](
[Acc_id] [uniqueidentifier] NULL,
[Bus_id] [uniqueidentifier] NULL
)ON [PRIMARY]
GO
个记录上1Testdb:
34455F60-9474-4521-804E-66DB39A579F3,约翰
C23523F6-2309-4F58-BB3F-EF7486C7AF8B,皮特
DC711615-3BE4-4B31-9EF2,B1314185CA62戴夫
E3AAB073-2398-476D-828B-92829F686A4C,亚当
记录上2Testdb:(关系表,恩。朋友关系)
记录#1:DC711615-3BE4-4B31-9EF2-B1314185CA62,34455F60-9474-4521-804E-66DB39A579F3
记录#2:E3AAB073-2398-476D-828B-92829F686A4C,34455F60- 9474-4521-804E-66DB39A579F3
记录#3:DC711615-3BE4-4B31-9EF2-B1314185CA62,E3AAB073-2398-476D-828B-92829F686A4C
记录#4:E3AAB073-2398-476D-828B- 92829F686A4C,DC711615-3BE4-4B31-9EF2-B1314185CA62
挑战:从表1Testdb只有那些与表2Testdb上的John [34455F60-9474-4521-804E-66DB39A579F3]没有关系的记录不同。
预期结果应该是(谁不约翰没有与关系?):
C23523F6-2309-4F58-BB3F-EF7486C7AF8B,皮特
谢谢 瓦伦丁
感谢您的快速回复。 这非常接近目标结果。 只剩下挑战的一部分,它也带来了约翰的记录。 如何从答案中排除John? [34455F60-9474-4521-804E-66DB39A579F3] 记住我只想C23523F6-2309-4F58-BB3F-EF7486C7AF8B,Petes记录 问候, 瓦尔 – Val 2010-06-17 17:45:36
的“和a.acc_id <>” ... ''在最后应该排除约翰的行。这不行吗?它后来被编辑过,所以你最初可能没有看到它。 – MisterZimbu 2010-06-17 17:49:07
第一次看到了。但它的工作。谢谢。 Val – Val 2010-06-17 18:08:53