在数据库中有表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;
我现在还想要获取到返回的行数。请问要在上面语句的基础上怎么改呢?
------解决思路----------------------
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;
------解决思路----------------------
1、你的B表img、imgUrl应该是联合主键吧?
2、A表的imge和B表应该是一对一的吧?
3、你要求的返回行数,是A表某个name的图片数,还是什么?
如果是图片数,1#的语句就是
------解决思路----------------------
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;