菜鸟继续请教SQL语句

qq_28859743 2015-06-11 12:08:30
在数据库中有表A和表B。
表A中有name, type, content, img 四列。
表B中有img, imgUrl两列。

如:
表A
name type content img
李可 2 abcd
付军 2 cdef
李好 1 ghijk 356.jpg
李好 2 lmno

表B中为
img imgUrl
356.jpg www.xxx.com/img/26/356.jpg
789.jpg www.xxx.com/img/38/789.jpg

在表A中,type为1时,后面的img列是有值的,为2的话,img中是没有值的。

现在我想把姓名为李好的 name type content img imgUrl找出来,找出来的结果应该是
name type content img imgUrl
李好 1 ghijk 356.jpg www.xxx.com/img/26/356.jpg
李好 2 lmno

前面我开了一个帖子,知道了应该写为:
SELECT A.name, A.type, A.content, A.img, B.imgUrl FROM A LEFT JOIN B ON A.img=B.img Where name='李好' order by A.name asc;
我现在还想要获取到返回的行数。请问要在上面语句的基础上怎么改呢?
...全文
134 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
还在加载中灬 2015-06-11
  • 打赏
  • 举报
回复
SELECT A.name, A.type, A.content, A.img, B.imgUrl FROM A LEFT JOIN B ON A.img=B.img Where name='李好' order by A.name asc;

这个查询的总行数?

SELECT A.name, A.type, A.content, A.img, B.imgUrl
,COUNT(1)OVER()[总行数]
FROM A LEFT JOIN B ON A.img=B.img Where name='李好' order by A.name asc;
江南小鱼 2015-06-11
  • 打赏
  • 举报
回复
1、你的B表img、imgUrl应该是联合主键吧? 2、A表的imge和B表应该是一对一的吧? 3、你要求的返回行数,是A表某个name的图片数,还是什么? 如果是图片数,1#的语句就是
hery2002 2015-06-11
  • 打赏
  • 举报
回复
SELECT A.name, A.type, A.content, A.img, B.imgUrl,(select count(1) from A LEFT JOIN B ON A.img=B.img Where name='李好' ) as c FROM A LEFT JOIN B ON A.img=B.img Where name='李好' order by A.name asc;

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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