Coder编程 2017-04-23 02:11 采纳率: 50%
浏览 803
已采纳

求问一个Oracle 查询语句如何写!

问题是这样的:
我有三张表:用户表,留言表,附件表。
表结构如下:
用户表:
create table t_user(
u_id int primary key, --编号
u_username varchar2(50), --客户名称
u_password varchar2(50), --客户密码
u_nickname varchar2(50), --客户的昵称 1、普通用户,3表示超级管理员,0表示匿名用户
u_type int, --客户类型 1、普通用户,3表示超级管理员
u_status int, --客户状态 有停用和启用两种状态:0表示启用,1表示停用
u_email varchar2(50), --客户邮箱
u_hiddenMsg int, --客户是否能发信息 0表示不禁止,1表示禁止
u_createDate date --客户的创建时间
)
留言表:
create table t_message(
m_id int, --留言信息的编号
m_title varchar2(200), --留言信息的题目
m_content clob, --留言信息的内容
m_create_date date, --留言信息的创建时间
u_id int --客户的编号
)
附件表:
create table t_attachment(
a_id int PRIMARY KEY, --附件编号
a_newName varchar2(100), --附件新名称
a_oldName varchar2(100), --附件原始名称
a_content_type varchar2(100), --附件类型
a_create_date date, --创建时间
m_id int --留言编号
)

如何写SQL语句达到:

显示所有用户的留言和附件。用户可能有多个留言,留言里面可以有附件可以有多个附件也可以没有附件。

效果如图:
图片说明

  • 写回答

3条回答 默认 最新

  • 普通网友 2017-04-23 07:52
    关注

    insert into t_user values(1,'use1','123','user1',1,0,'test@qq.com',0,now());
    insert into t_user values(2,'use2','123','user2',1,0,'test@qq.com',0,now());

    insert into t_message values(1,'msg11','content11',now(),1);
    insert into t_message values(2,'msg12','content12',now(),1);
    insert into t_message values(3,'msg21','content21',now(),1);
    insert into t_message values(4,'msg22','content22',now(),1);

    insert into t_attachment values (1,'attach1','attach1','zip',now(),1);
    insert into t_attachment values (2,'attach2','attach1','zip',now(),1);

    select t_message.m_id,a_id from t_message,t_attachment where t_message.m_id = t_attachment.m_id;
    select t_message.u_id,m_id from t_user,t_message where t_message.u_id = t_user.u_id;
    #left join可以满足你的要求,右侧对附件表的连接,没有附件的话会补NULL
    select * from ((select t_message.u_id,m_id from t_user,t_message where t_message.u_id = t_user.u_id) as a left join (select t_message.m_id,a_id from t_message,t_attachment where t_message.m_id = t_attachment.m_id) as b on a.m_id = b.m_id);

    u_id | m_id | m_id | a_id
    ------+------+------+------
    1 | 1 | 1 | 1
    1 | 1 | 1 | 2
    1 | 2 | |

    1 | 3 | |

    1 | 4 | |

    (5 rows)

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)