select art.artno, art.name from Art
left outer join store on art.artno =store.artno
where art.Artno not in (select art.artno from store)
该查询应该是这样的,但似乎不工作(我没有得到列名旁边的任何结果行)。使用MSSQL 2008.如果只有一列与第二列部分匹配,我如何从第一个表中返回两列?
table art table store EXPECTED RESULT
artno name artno qty artno name
1 xbox360 1 1 2 XHW
2 XHW 3 2 5 PS2
3 NETANDO 4 1
5 PS2 6 3
6 PS1
4 X1
如何编写查询以获得示例中显示的Expected out?
只是让你知道表是100plus K行大,如果有帮助。
最后,为什么上面的代码不起作用有些灯会是有益的。我看着这个this link似乎是外连接必须工作,可能是我根本无法理解这一点。我也试过full outer join
,没有帮助。使用except
我只能找到artno
,但没有让我生成name
列。
@tuncay,谢谢。第二个选项有帮助,但不是第一个,我无法解释为什么,但如果你这样做会有帮助。 – tough 2012-08-08 12:06:52
请您告诉我后面的's.artno'和's.artno'的位置是否与'join'语句的'left'和'right'有关。 – tough 2012-08-08 14:01:21
我真的不这么认为。它是一个条件,我指定了明确的表别名(“a”和“s”)。 – 2012-08-08 14:05:05