24
我有2个表如下:返回行,如果记录不存在LEFT OUTER JOIN
Table_1
[Group No] [Test No] [Description]
123 1 [First Test]
123 2 [Second Test]
123 3 [Third Test]
Table_2
[Sample No] [Test No] [Result Description]
ABC 1 [Some More Result]
ABC 3 [Some Result]
DEF 1 [A Result]
DEF 2 [Results More]
DEF 3 [Bad Results]
这里是我的查询:
SELECT Table_1.[Group No], Table_1.[Test No], Table_1.Description, Table_2.[Result Description]
FROM Table_1
LEFT OUTER JOIN Table_2 ON Table_1.[Test No] = Table_2.[Test No]
WHERE (Table_1.[Group No] = '123') AND (Table_2.[Sample No] = 'ABC')
djacobson的查询:
SELECT Table_1.[Group No], Table_1.[Test No], Table_1.Description, Table_2.[Result Description]
FROM Table_1
LEFT OUTER JOIN Table_2 ON Table_1.[Test No] = Table_2.[Test No]
WHERE (Table_1.[Group No] = '123')
AND (Table_2.[Sample No] IS NULL OR Table_2.[Sample No] = 'ABC')
这将返回:
[Group No] [Test No] [Description] [Result Description]
123 1 [First Test] [Some More Result]
123 3 [Third Test] [Some Result]
但我真正想要的是:
[Group No] [Test No] [Description] [Result Description]
123 1 [First Test] [Some More Result]
123 2 [Second Test] NULL
123 3 [Third Test] [Some Result]
这可能吗?我想用测试2号返回记录。但是,如何加入不存在的记录?或者这是不可能的?有什么选择?
嗨djacobson,这仍然产生相同的结果,我仍然没有得到与测试2号的行。这是与JOIN有关吗? – KayBee 2011-05-06 16:07:32
这很奇怪...现在正在使用什么查询?请编辑您的问题以包含它(您可以在问题中使用源代码格式,但不能在评论中使用)。 – 2011-05-06 16:09:28
嗨djacobson,第二个查询似乎已经产生了所需的结果。我编辑了我的原始问题,包括您建议的第一个查询 - 这不起作用,但第二个查询已经完成。 – KayBee 2011-05-06 16:15:54