求大侠帮我写一条sql语句啊,我想了半天了,求助

q539816590 2012-07-19 10:46:02
三张表,
一张user_profile用户表,
user_manage上下级管理表,
weekly_report用户周报表,
user_manage里面的两个字段都是user_profile里面的id,
weekl_report里面有个user_profile的id字段,
查询出user_manage里面的当前管理者的下级的周报,也要查出当前管理者自己的周报

user_profile的user_oid是主键
mysql> desc user_profile;
+----------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+----------------+---------------+------+-----+---------+-------+
| USER_OID | decimal(38,0) | NO | PRI | NULL | |
| USER_NAME | varchar(50) | NO | | NULL | |
| DISPLAY_NAME | varchar(50) | NO | | NULL | |
| LOGIN_ID | varchar(20) | NO | | NULL | |
| LOGIN_PASSWORD | varchar(150) | NO | | NULL | |
| EMAIL | varchar(100) | NO | | NULL | |
| IS_ACTIVE | char(1) | NO | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| UPDATE_DATE | datetime | YES | | NULL | |
| ACTOR | varchar(20) | NO | | NULL | |
| ACTION_TYPE | varchar(20) | NO | | NULL | |
| ACTION_DATE | datetime | NO | | NULL | |
+----------------+---------------+------+-----+---------+-------+
12 rows in set (0.02 sec)


user_manage里面的manage_user与employee_user都是user_profile里面的主键
mysql> desc user_manage;
+---------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+---------------+---------------+------+-----+---------+-------+
| MANAGER_USER | decimal(38,0) | NO | MUL | NULL | |
| EMPLOYEE_USER | decimal(38,0) | NO | MUL | NULL | |
+---------------+---------------+------+-----+---------+-------+
2 rows in set (0.02 sec)


weekly_reprot里面的reprot_oid是主键,user_oid是user_profile里面的主键
mysql> desc weekly_report;
+-------------+---------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| REPORT_OID | decimal(38,0) | NO | PRI | NULL | |
| REPORT_NAME | varchar(100) | NO | | NULL | |
| FROM_DATE | datetime | NO | | NULL | |
| END_DATE | datetime | NO | | NULL | |
| USER_OID | decimal(38,0) | NO | MUL | NULL | |
| CTRL_STATUS | char(1) | NO | | NULL | |
| CREATE_DATE | datetime | NO | | NULL | |
| UPDATE_DATE | datetime | YES | | NULL | |
| ACTOR | varchar(32) | NO | | NULL | |
| ACTION_TYPE | varchar(20) | NO | | NULL | |
| ACTION_DATE | datetime | NO | | NULL | |
+-------------+---------------+------+-----+---------+-------+
11 rows in set (0.03 sec)
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
rucypli 2012-07-20
  • 打赏
  • 举报
回复
select T1.*
from weekly_report as T1 left join user_manage as T2
on T1.user_oid = T2.employee_user
where T2.manage_user = <当前管理者的ID>


union all

select *
from weekly_report
where user_oid = <当前管理者的ID>
nicenight 2012-07-20
  • 打赏
  • 举报
回复
你这个当前管理者是一个输入吗?就当是一个需要输入的值吧。另外你这个问题是要一个语句查出还是分两个语句做?
你参考一下:

查询出 user_manage里面的当前管理者的下级的周报:
select T1.* 
from weekly_report as T1 left join user_manage as T2
on T1.user_oid = T2.employee_user
where T2.manage_user = <当前管理者的ID>


查出当前管理者自己的周报:
select * 
from weekly_report
where user_oid = <当前管理者的ID>



查询出 user_manage里面的当前管理者的下级的周报的同时查出当前管理者自己的周报:
select T1.* 
from weekly_report as T1 left join user_manage as T2
on T1.user_oid = T2.employee_user
where T2.manage_user = <当前管理者的ID> or T1.user_oid = <当前管理者的ID>
wwwwb 2012-07-20
  • 打赏
  • 举报
回复
贴建表及插入记录的SQL,及要求结果出来看看
ACMAIN_CHM 2012-07-20
  • 打赏
  • 举报
回复
(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

q539816590 2012-07-19
  • 打赏
  • 举报
回复
没有人 回答吗?

57,062

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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