【发布时间】:2013-07-03 07:17:02
【问题描述】:
我想用子查询返回多个列。
E.G,
select a.name, a.age
from table1 a, ( select b.race, b.weight from table2 b where dateDiff(dd, b.date1, b.date2 ) < 30 )
where a.age > 24
你们中的一些人说过“只需使用联接”- 我不希望子查询中的 dateDiff 影响父查询的结果。同样,我的真实查询比这个更复杂,但这应该足以解释我的问题。
【问题讨论】:
-
那么你为什么不使用连接来获得所需的结果呢?
-
使用联接而不是子查询
-
请提供有关您的子查询的更多详细信息,以便我们了解您为什么不使用 LEFT JOIN。在当前的例子中,Hip Hip Array 给出的答案是正确的。
-
@Treb 我刚刚更新了。希望这有助于解释。我不希望我的子查询中的 dateDiff 子句影响父结果。是否可以在左连接中做到这一点?
-
只需将 dateDiff() 条件放入
LEFT JOIN条件中即可。
标签: sql sql-server subquery