这个sql怎么写

naonaoye 2011-07-18 03:17:09
表1
id name
1 aaa
2 bbb
3 ccc

表2
id time
1 110707
1 110708
2 110707

要gridview中显示为
id name times
1 aaa 2
2 bbb 1
3 ccc 0
sql语句怎么写?能不能都写在一个存储过程里?
...全文
221 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
FlyHigherForever 2011-07-20
  • 打赏
  • 举报
回复
SELECT A.ID,A.name,COUNT(B.ID) FROM A LEFT JOIN B ON A.id=B.ID GROUP BY A.ID,A.name

//A 为第一张表 B为第二张表
naonaoye 2011-07-19
  • 打赏
  • 举报
回复
多谢各位的指点,结贴
kiss筱魔 2011-07-19
  • 打赏
  • 举报
回复

CREATE TABLE t1 (
id INT,
NAME NVARCHAR (20)
)

CREATE TABLE t2
(
id INT,
TIME int
)

INSERT INTO t1 SELECT 1,'aaa' UNION ALL
SELECT 2,'bbb' UNION ALL
SELECT 3,'ccc'

INSERT INTO t2 SELECT 1,110707 UNION ALL
SELECT 1,110708 UNION ALL
SELECT 2,110707


select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1

id name times
----------- -------------------- -----------
1 aaa 2
2 bbb 1
3 ccc 0

(3 row(s) affected)


q107770540 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wxr0323 的回复:]

引用 4 楼 q107770540 的回复:

引用 1 楼 hch126163 的回复:

select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1

++

帖个完整实例:

SQL code

CREATE TABLE t1 (
i……
[/Quote]
R ...LZ要的是SQL
ASPNETCHENGXU 2011-07-19
  • 打赏
  • 举报
回复
分组字段加,关联表查询
挨踢直男 2011-07-18
  • 打赏
  • 举报
回复
select 表1.id,表1.name,count(time) as times from  表1 left join 表2 on 表1.id = 表2.id group by 表1.id ,表1.name
子夜__ 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 q107770540 的回复:]

引用 1 楼 hch126163 的回复:

select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1

++

帖个完整实例:

SQL code

CREATE TABLE t1 (
id INT,
NAME NVARCH……
[/Quote]
没打算用linq来写么?
aXen 2011-07-18
  • 打赏
  • 举报
回复

SELECT t.id, 表1.name, t.time2
FROM (
SELECT id, COUNT(id) AS times FROM 表2 GROUP BY time
) AS t LEFT JOIN 表1 ON t.id = 表1.id


另一种写法,不知道符不符合要求。
laowang134 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ssp2009 的回复:]
SQL code

CREATE TABLE t1 (
id INT,
NAME NVARCHAR (20)
)

CREATE TABLE t2
(
id INT,
TIME int
)

INSERT INTO t1 SELECT 1,'aaa' UNION ALL
SELECT 2,'bbb' UNION ……
[/Quote]
+1
用连接查询比用关联子查询好!~
快溜 2011-07-18
  • 打赏
  • 举报
回复
CREATE    TABLE t1 (
id INT,
NAME NVARCHAR (20)
)

CREATE TABLE t2
(
id INT,
TIME int
)

INSERT INTO t1 SELECT 1,'aaa' UNION ALL
SELECT 2,'bbb' UNION ALL
SELECT 3,'ccc'

INSERT INTO t2 SELECT 1,110707 UNION ALL
SELECT 1,110708 UNION ALL
SELECT 2,110707

select a.*,times=sum(case when b.id is null then 0 else 1 end)
from t1 a left join t2 b on a.id=b.id
group by a.id,a.name

/*
id NAME times
----------- -------------------- -----------
1 aaa 2
2 bbb 1
3 ccc 0
qgqch2008 2011-07-18
  • 打赏
  • 举报
回复
CREATE PROCEDURE [dbo].[grid]
AS
BEGIN
SELECT a.id,a.NAME,(SELECT COUNT(1) FROM dbo.t2 b WHERE b.id=a.id ) AS times FROM dbo.t1 a
END;
EXEC dbo.grid
/*
id NAME times
----------- -------------------- -----------
1 aaa 2
2 bbb 1
3 ccc 0

(3 個資料列受到影響)
*/
是不是用視圖更好呢?
q107770540 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hch126163 的回复:]

select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1
[/Quote]
++

帖个完整实例:


CREATE TABLE t1 (
id INT,
NAME NVARCHAR (20)
)

CREATE TABLE t2
(
id INT,
TIME int
)

INSERT INTO t1 SELECT 1,'aaa' UNION ALL
SELECT 2,'bbb' UNION ALL
SELECT 3,'ccc'

INSERT INTO t2 SELECT 1,110707 UNION ALL
SELECT 1,110708 UNION ALL
SELECT 2,110707


select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1

id name times
----------- -------------------- -----------
1 aaa 2
2 bbb 1
3 ccc 0

(3 row(s) affected)

子夜__ 2011-07-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 hch126163 的回复:]

select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1
[/Quote]
没问题。。
q107770540 2011-07-18
  • 打赏
  • 举报
回复
left join+group by
hch126163 2011-07-18
  • 打赏
  • 举报
回复
select t1.id,t1.name,(select isnull(count(1),0) from t2 where t1.id=t2.id) as times
from t1

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧