2012-09-06 56 views
1

比方说,我们的表t1作为是否有可能在相邻列中显示结果和行数?

>desc t1; 
     id  int 
    name varchar(30) 

>select count(*) from t1; 
     count(*) 
     10 

是否有可能获取的结果

id name count 
1 abc  10 
2 def  10 
.  .  . 
.  .  . 
.  .  . 

如果对实际结果列idname和计数结果查询count在相同的结果集中。这可能吗? 其基本思想是将结果行数与结果一起提取,而不必单独向数据库查询数据。即使子查询也很好。

谢谢。

+0

'计数'是没有。总结果集的行不仅仅是当前行,所以它必须是常量。 –

回答

3

是的,这是可能的。这也是非常有效的,因为MySQL优化的东西

SELECT t.*, 
     (select count(*) from t1) as count 
    FROM t1 t 
+0

谢谢,它正在工作。 –

+0

@Olloe Jones是否有可能在此查询中返回多个列:(从t1中选择count(*),SUM(COLUMN1))作为计数 – Selva

+0

是的。这是可能的,但SUM()不会像COUNT()那样高效。 –

3
SELECT * FROM t1, (SELECT COUNT(*) AS count FROM t1) t2 
+0

谢谢,它正在工作。 –

2

尝试:

select id, name, (select count(*) from t1) as cnt from t1; 
+0

谢谢,它正在工作。 –

相关问题