Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

三表查询问题

努力  发表于:2007-11-23 20:54:14  
复制

我有三张表,表一,表二,表三.

 

表一字段;  id    住址编号.姓名.出租日期.........

 

表二字段;  id    住址编号.姓名.进驻日期.........

 

表二字段;  id    住址编号.姓名.登记日期........

.

表一,有100条记录,

 

表二,有20 条记录

 

表三,有5  条记录

 

表一是主表进行查询,要求是;新建查询的新表4除显示表二的20条,表三的5条外,表一的其他75条记录不显示.我自链接属性中的三个条件试用都不行,只有请教老师了,在此先谢谢

 

Top
竹笛 发表于:2007-11-23 21:06:44

你的表设计有问题,参考:

 

表一字段;  姓名id    出租日期.........

 

表二字段;  姓名id    进驻日期.........

 

表三字段;  姓名id    登记日期........

 

表四字段;  姓名id  姓名  住址编号.......



Victor Duane 发表于:2007-11-23 21:08:19

我先倒一下,你的这个问题里面有一个很重要的一条,就是找出这三个表之间的连接点,我认为应该是姓名吧,所以应该用姓名连接,一个查询要做到你的要求也是有相当的难度的,建议先分开处理

表一与表二内联得到查询1

表一与表三内联得到查询2

查询1与查询2如果没有重复的姓名,可以用联合查询

如果有重复的姓名那还是用左联吧

 

这里我不明白你这三个表之间的业务关系,所以无法准确的定位你的需求



马丽 发表于:2007-11-23 22:27:10

用联合查询

select 表2.id as id,表2.住址编号 as 住址编号,表2.姓名 as 姓名,表2.进驻日期 as 进驻日期, "" as 登记日期 union

select 表3.id ,表3.住址编号 ,表3.姓名 ,"",表3.登记日期



马丽 发表于:2007-11-23 22:29:17

不好修改呵,刚没写好,重来一次

用联合查询

select 表2.id as id,表2.住址编号 as 住址编号,表2.姓名 as 姓名,表2.进驻日期 as 进驻日期, "" as 登记日期 from 表2 union

select 表3.id ,表3.住址编号 ,表3.姓名 ,"",表3.登记日期 from 表3



努力 发表于:2007-11-24 08:11:17

对不起我没讲清楚,是这样

 

表一字段; (房主) id     住址编号.姓名.出租日期.........

 

表二字段;  (境外人)id    住址编号.姓名.进驻日期.........

 

表二字段;  (市外人)id    住址编号.姓名.登记日期........

.

表一,有100条记录,

 

表二,有20 条记录

 

表三,有5  条记录

 

主键也就是连接字段是;住址编号



竹笛 发表于:2007-11-24 08:38:52

只不过人员有个分类罢了,参考:

 

表一字段;  姓名id、出租日期.........

 

表二字段;  姓名id、进驻日期.........

 

表三字段;  姓名id、登记日期........

 

表四字段;  姓名id、姓名、住址编号、人员类型

 

人员类型就是:房主、境内人、境外人



许积云 发表于:2007-11-24 08:47:41

select 表一.住址编号, 表一.姓名 as 房主,表二.姓名 as 境外人,表三.姓名 as 市外人,表一.出租日期,表二.进驻日期,表三.登记日期

from 表一

 right OUTER JOIN [表二] ON 表一.住址编号 = 表二.住址编号

 right OUTER JOIN [表二] ON 表一.住址编号 = 表三.住址编号

GROUP BY 表一.住址编号, 表一.姓名 as 房主,表二.姓名 as 境外人,表三.姓名 as 市外人,表一.出租日期,表二.进驻日期,表三.登记日期

 

 

在我理解中,表一应该包含了所有的“住址编号”记录,表二、表三中的住址编号在表一中应该是都能找得到的

而表二、表三的住址编号可能有重复,也可能不重复.

以上查询语句,请楼主自己检测使用,呵呵



竹笛 发表于:2007-11-26 23:33:25

你的邮件我收到了,但是我不知道你想实现什么功能,从第一个帖子看,看不明白.能否表达清楚你的意思呢?

另外,你的数据库中的表名称居然是:

表一

表二

表三

让别人摸不着头脑.



总记录:8篇  页次:1/1 9 1 :