你的位置:| 首页网站建设access数据库多表查询语句→文章正文  
文章导航


如:
A表:AId,TITle,Flag,Col
1 aaa 0 1
2 bbb 1 2
......
B表:BId,AId,Flag,Col
1 1 1 2
2 2 0 2
3 1 1 3
......
查TITle,条件是Flag=1且Col=2

结果是aaa,bbb
bbb在A表满足条件Flag=1,Col=2
aaa在B表满足条件Flag=1,Col=2

select a.* from a inner join b on a.aid=b.aid where (b.Flag=1 and b.Col=2)
or (a.Flag=1 and a.Col=2)

说明实例

数据表:

学生表:学生ID,学生姓名,班级ID

班级表:班级ID,班级名称,教师ID

教师表:教师ID,教师姓名

学生表和班级表是通过班级ID关联的

班级表和教师表是通过教师ID关联的

现在知道学生的ID,怎么获取教师的ID和教师姓名?

ASP代码如下(定义banzhuren函数,传递参数为学生的ID):

<%'定义banzhuren函数
function banzhuren(stuid)
dim rs,sql
set rs =server.CreateObject("adodb.recordset")
sql="select 教师表.教师姓名,教师表.教师ID from 教师表,班级表,学生表 where 学生表.学生id="&stuid&" and 班级表.班级id=学生表.班级id and 教师表.教师id=班级表.教师id"
rs.open sql,conn,1,1
banzhuren=rs("教师姓名")
end function'调用函数测试输出学生ID为1教师姓名
response.Write(banzhuren(1))
%>

 

首先,每次联合查询都需要用圆括号括起来:

SELECT * FROM (aa LEFT JOIN bb ON aa.a = bb.a ) LEFT JOIN cc ONcc.a = bb.a;

注意:在使用join语句查询时,如果有加多个On条件,必须用括号括起来,如:

SELECT * FROM (aa LEFT JOIN bb ON aa.a=bb.a) LEFT JOIN cc ON(bb.a=cc.a and bb.b=cc.b)

其他例子可以参考:

1、SELECT * FROM URL as a LEFT OUTER JOIN MobileAfter as b ON a.URL = b.URL

2、SELECT * FROM (URL as a LEFT OUTER JOIN MobileAfter as b ON a.URL= b.URL) LEFT OUTER JOIN MobileBefore as c ONc.URL=a.URL

3、SELECT * INTO Ttable1 FROM ((((URL as a

LEFT OUTER JOIN MobileAfter as b ON a.URL=b.URL)

LEFT OUTER JOIN MobileBefore as c ON c.URL=a.URL)

LEFT OUTER JOIN TeleCOM as d ON d.URL=a.URL)

LEFT OUTER JOIN UniCOM as e ON e.URL=a.URL)

  上一页 1 2 3 4 5 下一页
 
公司简介 在线客服 客服中心 意见反馈 相关法律 隐私条款 广告服务 友情链接
Q链:515347638  电子邮箱:hanen@126.com 粤ICP备05086553