SQL Compact 3.5中的嵌套SELECT子句

时间:2009-12-21 17:58:39

标签: sql sql-server select sql-server-ce subquery

在这篇文章“select with nested select”中,我读到SQL Compact 3.5(SP1)支持嵌套的SELECT子句。但我的要求不起作用:

t1 - 表1 t2 - 表2 c1,c2 =列

select 
 t1.c1, 
 t1.c2, 
 (select count(t2.c1) from t2 where t2.id = t1.id) as count_t 
from 
 t1 

在这种情况下,SQL Compact 3.5 SP1是否支持嵌套的SELECT子句?

更新

SQL Compact 3.5 SP1使用此类嵌套请求:

  • SELECT ... from ... where .. IN(SELECT ...)
  • SELECT ... from(SELECT ...)

4 个答案:

答案 0 :(得分:8)

感谢大家的帮助和建议。

问题的最终答案 - NO。 SQL Compact 3.5 SP1不支持嵌套的select子句。

答案 1 :(得分:6)

您试图将标量值与理论上的结果集等同起来。

尝试

select * from LogMagazines where id IN (select max(id) from UserRoles)

好的,我回答了这个问题并且您提出了一个全新的,不同的问题,这个问题并不是它应该如何工作,而是回答新的问题,您需要做的是加入:

SELECT 
    t1.c1,  
    t1.c2,  
    count_t.c
FROM 
    t1 JOIN (select id, count(t2.c1) as c from t2 GROUP BY t2.id) count_t 
       ON t1.id = count_t.id

左右

答案 2 :(得分:1)

尝试运行select max(Id) from UserRoles 并确保这会返回正确的结果。 然后尝试select * from LogMagazines where id = 有了这个结果,你可能会在某个地方出错。

答案 3 :(得分:0)

也许你需要

select * from LogMagazines where id = (select max id from UserRoles)