sql - Access SQL : Inner Join with multiple tables

标签 sql ms-access vb6 ado

我在一个数据库中有多个表:

tblOjt

ID    studentid    courseid    companyid    addresseeid    dateadded    datestarted    dateended    ojthours

1         3            1           1             1         9/25/2013                                  500 

tbl学生
ID    lastname    firstname    middlename    course    gender    renderedhours    dateadded    archive

3     Dela Cruz      Juan        Santos       BSIT      Male          500

tbl类(class)
ID    coursealias    coursename                                            hours
1         BSIT      Bachelor of Science in Information Technology          500

tbl公司
ID    companyname

1      MyCompany

tbl地址
ID    addresseename

1     John dela Cruz

我需要有一个 SQL 语句,我可以在其中获取这些值:
tableOjt.id  tableOJT.surname,firstname, and middlename  course  companyname  addresseename dateadded datestarted dateended ojthours

我将如何使用这些连接方法在 SQL 中获取此代码...我在 VB6 ADODC 中编写它,这与标准 SQL 中的语法相同吗?谢谢

最佳答案

如果您正在针对 Access 数据库后端编写查询,则需要使用以下连接语法:

select
  t1.c1
, t2.c2
, t3.c3
, t4.c4
from ((t1
inner join t2 on t1.something = t2.something)
inner join t3 on t2.something = t3.something)
inner join t4 on t3.something = t4.something

表名和列名在这里并不重要,但括号的位置很重要。基本上,您需要在 from 后面有 n - 2 个左括号。子句和每个新开头前的一个右括号 join除了第一个子句,其中 n 是连接在一起的表的数量。

原因是 Access 的联接语法一次只支持联接两个表,因此如果需要联接两个以上的表,则需要将多余的表括在括号中。

关于sql - Access SQL : Inner Join with multiple tables,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19367565/

相关文章:

sql - 查询优化

java - 如何使用java中的sql查询列出MS Access数据库文件中的所有表名称?

ms-access - 更新插入ms Access 权限

java - MySQLSyntaxErrorException 神秘

sql - 将文本字段中的时间值与当前时间进行比较

vba - 调用带有大量参数的存储过程

c# - C# .Net 4.0 中的 Com 端口

delphi - 测试 Delphi DLL 导致 VB6 IDE 崩溃

sql - PL/SQL 私有(private)对象方法

sql - 在 SQL 查询中按年份进行二次排序