如题!!
比如:
ACCESS数据库
表 PP ZT ABB DHJ
表里 PP:ID PP
ZT:ID XHGG CPBH CPXL CPJG
ABB 同上
DHJ 同上
现需要使用DATACOMBO1 来实现读取PP里的内容作为SQL搜索的表头名 来实现跨表查询
如果我的想法不可行 谁能提供一个,我需要他自动生成,以后改数据库的时候,程序就不要动了
在线等
比如:
ACCESS数据库
表 PP ZT ABB DHJ
表里 PP:ID PP
ZT:ID XHGG CPBH CPXL CPJG
ABB 同上
DHJ 同上
现需要使用DATACOMBO1 来实现读取PP里的内容作为SQL搜索的表头名 来实现跨表查询
如果我的想法不可行 谁能提供一个,我需要他自动生成,以后改数据库的时候,程序就不要动了
在线等
解决方案 »
- vbscript 调用存储过程方法?请真正调多得给看看我的不完全代码
- 窗体最大化问题?
- 在vb的MDI主窗体中,怎样才能把窗体的“最大化”和“最小化”去掉。还有怎样才能让窗体不能自由拖动。
- 用Data控件打开DBF数据库文件的奇怪问题
- 请高手指点下面这段代码为什么在win98下面通不过?--100分,在线等
- 请教:ChildWindowFromPoint(hwnd, xPoint, yPoint)中的xPoint, yPoint单位是象素,怎么样转化为厘米?另外,它们是相对软件的位置还是相对屏
- 急救!!!!!关于报表动态打印的问题
- 如何防止多次打开同一程序?(在线加分)
- 好难的问题(解决者给多分,跟贴者有份)
- 怎样把一个窗体准确定位在另一个窗体的某一个控件的下方?
- vb代码 怎样做像excel表一样的工作表和表名字标签?
- 关于VB连接ACESS数据库 来实现查询功能!
.
跨表查询..使用join就可以.
其实具体是没看懂..
列是什么意思不知道.
Inner Join 把两个表连接在一起,返回两个表中相匹配的记录,是2和3的交集。
2. Left outer join
Left outer join,左侧表所有的记录都返回,右侧匹配的记录返回,没有匹配的返回Null
3. Right outer join
与Left outer join相反,右侧的记录返回,左侧返回匹配的记录,没有匹配返回Null
4. Full outer join
2和3的并集。
5. Cross join
两个表的笛卡儿积,返回所有可能的值,不允许有连接条件!为了说明问题现在举例说明
现在有两个示例表如下:
Table1:表中记录和字段如下
Name_key Phone E_mail
---------------------------------------------------------------------
David 110 [email protected]
Davy 120 [email protected]
John 130 [email protected]:
Name_key age Name_friend friend_phone
-------- ----------- ----------- ------------
David 24 Snow 0100
Davy 24 Snow NULL
kitty 10 cat 0130 下面以Name_key 为连接字段进行连接
1. Inner join,
Select * from Table1 inner join Table2 on Table1.name_key=Table2.name_key结果如下:Name_key Phone E_mail Name_key age Name_friend friend_phone
-------- ----------- ---------------------------------------- -------- ----------- ----------- ------------ ------------
David 110 [email protected] David 24 Snow 0100 Davy 120 [email protected] Davy 24 Snow NULL
正如我们所期望的,返回了所有ON条件之后的匹配记录。2. Left outer join
Select * from Table1 left outer join Table2 on Table1.name_key=Table2.name_key 结果为:Name_key Phone E_mail Name_key age Name_friend friend_phone
-------- ----------- ---------------------------------------- -------- ----------- ----------- ------------
David 110 [email protected] David 24 Snow 0100 Davy 120 [email protected] Davy 24 Snow NULLJohn 130 [email protected] NULL NULL NULL NULL返回了左侧表的所有记录,因为John记录在右侧表无匹配记录,所以全为NULL3. Right outer join
Select * from Table1 right outer join Table2 on Table1.name_key=Table2.name_key 结果为:Name_key Phone E_mail Name_key age Name_friend friend_phone
-------- ----------- ---------------------------------------- -------- ----------- ----------- ------------
David 110 [email protected] David 24 Snow 0100
Davy 120 [email protected] Davy 24 Snow NULLNULL NULL NULL kitty 10 cat 0130 返回了右侧表的所有记录,因为kitty记录在左侧表无匹配记录,所以全为NULL
4. Full outer join
Select * from Table1 full outer join Table2 on Table1.name_key=Table2.name_key 结果为:Name_key Phone E_mail Name_key age Name_friend friend_phone
-------- ----------- ---------------------------------------- -------- ----------- ----------- ------------
David 110 [email protected] David 24 Snow 0100 Davy 120 [email protected] Davy 24 Snow NULLJohn 130 [email protected] NULL NULL NULL NULLNULL NULL NULL kitty 10 cat 0130 返回了2和3的并集。
5. Cross Join
Select * from Table1 cross join Table2 结果为:Name_key Phone E_mail Name_key age Name_friend friend_phone
-------- ----------- ---------------------------------------- -------- ----------- ----------- ------------
David 110 [email protected] David 24 Snow 0100
Davy 120 [email protected] David 24 Snow 0100
John 130 [email protected] David 24 Snow 0100
David 110 [email protected] Davy 24 Snow NULLDavy 120 [email protected] Davy 24 Snow NULLJohn 130 [email protected] Davy 24 Snow NULLDavid 110 [email protected] kitty 10 cat 0130
Davy 120 [email protected] kitty 10 cat 0130
John 130 [email protected] kitty 10 cat 0130 返回了3*3=9条记录,同时Cross Join不能使用ON连接条件!否则出错。
使用了连接条件后,你为了得到相应的记录还要使用Where条件,你可以在连接语句后使用,如:
Select table1.name_key,table2.age,table1.email,table2.name_friend from table1 inner join on table2
Where table1.name_key=’David’
多表之间的操作
三个或更多表的连接,请继续使用连接命令即可,代码如下,不再举例。Select *
Fom Table1 Inner join Table2 ON Table1.字段=Table2.字段
Inner join Table3 ON Table2.字段=Table3.字段
Where <选择条件>