【发布时间】:2015-06-28 08:28:26
【问题描述】:
当我像这样从链接的 SQL Server 2012 运行选择时:
select A.*
from A, (select TOP 1 * from B) as B
where A.test in (B.col1, B.col2)
虽然 A 有很多行,但我只从 A 得到 1 行。 B 这里是参数表,只有 1 行。
这里的 A 和 B 是指向远程服务器上的表的同义词。
【问题讨论】:
-
Bad habits to kick : using old-style JOINs - 旧式 逗号分隔的表格列表 样式已替换为 ANSI 中的 proper ANSI
JOIN语法-92 SQL 标准(20 多年前),不鼓励使用它 -
您的问题是什么?看来你已经有了答案。
-
@marc_s,在这种情况下,您的评论对问题没有意义。我尝试使用内部连接并得到相同的错误:)
-
@JamesZ - 我只是花时间处理这个错误并与其他人分享它的知识。
-
@marc_s 是正确的,要踢坏习惯。维护这种性质的 SQL 代码只是一场噩梦。尤其是当仍有一些人需要在一个坚实的平台上构建时。
标签: sql-server select sql-server-2012