日期:2014-05-17  浏览次数:20492 次

帮忙想一下几个sql查询语句
有以下几张表:
用户表(user_id,username,password,person_id)
客户表(person_id,name,dept_id) ps:客户有多个用户
单位表(dept_id,dname)
用户登录表(log_id,logtime,user_id)
新闻表(news_id,title,user_id)
栏目表(type_id,tname)
新闻发布表(pub_id,news_id,type_id,pubtime)
现在要查询:1.查询某天有多少用户,客户,单位登录
2.查询在某一个栏目下发表过大于5篇文章的客户
3.查询出某客户在某天发表的文章和文章数
4.按发表文章多少给单位排序

麻烦大家了
------解决方案--------------------
SELECT A.SUM(用户登录次数),A.SUM(客户登陆次数),A.SUM(单位登陆次数)

FROM
(SELECT COUNT(*) AS 用户登录次数,0 AS 客户登陆次数,0 AS 单位登陆次数
FROM 用户登录表
WHERE 用户登录表.user_id IN
(SELECT 用户表.user_id FROM 用户表)
UNION ALL
SELECT 0 AS 用户登录次数,COUNT(*) AS 客户登陆次数,0 AS 单位登陆次数
FROM 用户登录表
WHERE 用户登录表.user_id IN
(SELECT 客户表.person_id FROM 客户表)
SELECT 0 AS 用户登录次数,0 AS 客户登陆次数,COUNT(*) AS 单位登陆次数
FROM 用户登录表
WHERE 用户登录表.user_id IN
(SELECT 单位表.dept_id FROM 单位表)) AS A