日期:2014-05-18  浏览次数:20556 次

关于记录不匹配的多表查询?
为方便起见,只列举必要字段

有一个文章表article,记录文章的属性,
字段如下
title   nchar(100)

以及一个访问记录表visit,记录每篇文章的一次访问
字段如下
title   nchar(100),
visit_time   datetime

因为一篇文章在录入article之后,可能暂时没有人访问
所以,article表中的记录在visit表中不一定存在匹配记录

如果我要查询article表中所有文章的访问记录,结果如下
title     visit_count
文章A       11
文章B         6
文章C       0
文章D       0

sql语句应该如何写?望大侠指导。




------解决方案--------------------
select
a.title,
(select count(*) from visit where title=a.title ) visit_count
from article a
------解决方案--------------------
select
a.title,
isnull(b.visit_count,0) visit_count
from article a
left join
(
select title,count(*) visit_count
from visit
group by title
) b
on a.title=b.title