山东医疗器械行业协会:关于ACCESS查询的~~

来源:百度文库 编辑:高考问答 时间:2024/05/09 10:30:59
想建一个查询.
先说说数据库的结构
表名:A表和BC表
字段分别为:A:字段1
B:字段123
C:字段123

现在要实现的是A表字段1的前7位与BC字段1匹配的则列出A表字段1和BC的字段23

举例说明:
如果A字段1是我现在拥有的手机号,BC字段1都是号码段(7位数那种),字段2为地区,字段3为类型,比如北京什么什么卡.譬如B字段里面 1234678 这些是 中国移动上海 那么你输入 中国移动上海 就会查询A字段里面 手机号码前面7位包含 1234678 这些数字的手机号码,并列出来

看懂了吗?有追加分
BC字段名相同,但是内容不一样.就好比一个是移动号段,一个是联通号段

补充2:是想输入地区列出A中满足条件的号码,BC中只是7位号码段和地区

真的比较复杂的数据库,这样将大大降低运行的速度.
建议改为一个表(如表s),解决你问题的思路如下:
1、BC字段名相同,但是内容不一样.就好比一个是移动号段,一个是联通号段.

可在表s中增加一个数字字段,为0则为移动,为1则为联通,就可解决.

2:是想输入地区列出A中满足条件的号码,BC中只是7位号码段和地区.

这个可以在SQL语句中这样解决:
...form s where 号码=输入号码 and 地区=输入的地区.

用两个表以上的循环查询会有很多很多的问题的,尽量改成一个表比较好些.

表B和表C有何区别?
如果没区别的话为何要分成两个表?
兄台可否说清楚些?

我看明白了:简单。
select a.1,b.2,b.3,c.2,c.3 from 表A a,表B b,表C c where left(a.1,7)=b.1 and left(a.1,7)=c.1

注:表A代表表的名称;1 2 3代表字段名。

数据库设计不合理,这样就算能实现也没有效率。。不值得。。

很傻。。。

其实你要做的事很简单,是自己搞复杂了.
数据库编程就是要先想好,所谓"谋定而后动"