职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 1034|回复: 2

两张表查询的疑问望达人解答

[复制链接]
dgyys 发表于 2009-9-5 10:02 | 显示全部楼层 |阅读模式
有A
B两张表
A有3个字段:a
b
c
主键为a;B有4个字段
除包含A表的3个字段a,b,c外
还存在一个字段d用于表示A中记录删除的时间
主键为a
d
A表中假设有5条记录
B中假设有4条记录
且在A
B表中
以主键a来看
没有重复的记录
现在希望通过一个查询语句(如果可以的话)
实现以下结果:
返回A
B中所有的记录(按假设的记录数
应该为9条)
返回的结果“表”和B表有相同的字段
即a,b,c,d
而由于A表没有字段d则A表的所有记录为空(其他字符也可以
只要求A表记录的d字段记录一致即可)

小弟初学数据库
不知道如何解决以上问题
望达人解答
谢谢~
蓝精灵 发表于 2009-9-5 10:03 | 显示全部楼层

两张表查询的疑问望达人解答

oracle数据库:
select B.* from B
outer join A ;

select B.* from B
union
(select A.*,NULL from A);
本来以为用外连接就可以
但是发现A,B的主键没有相同的
也就是说A.a并不等于B.a
两者无法关联

所以想到用union
也就是第二个语句
由于家里没装oracle
无法验证正确性
但是思路是对的
你可以自己测试
并且百度下union的用法
十六 发表于 2009-9-5 10:03 | 显示全部楼层

两张表查询的疑问望达人解答

呵呵,A是操作表,B是操作结束后的历史数据保存表把^_^

select a,b,c,d
from B
union
select a,b,c,null
from A
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-4 13:49 , Processed in 0.136382 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表