SQL如何实现多连接语句?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

当我的SQL语句中只有一个内部联接时,工作的很好。我试着加入第二个表,现在我得到一个错误,它显示有语法错误(缺少操作符)。这里怎么了?

adsFormView.SelectCommand = "SELECT * FROM [tableCourse] INNER JOIN [tableGrade] ON [tableCourse].[grading] = [tableGrade].[id] INNER JOIN [tableCourseType] ON [tableCourse].[course_type] = [tableCourseType].[id] WHERE [prefix]='" & myPrefix & "' AND [course_number]='" & myCourseNum & "'"
提问于
用户回答回答于

对于多表联接,必须将额外的联接嵌套在括号中:

SELECT ...
FROM ((origintable
JOIN jointable1 ON ...)
JOIN jointable2 ON ...)
JOIN jointable3 ON ...

基本上,对于超过第一个表的每个额外的表,您需要在原始的‘FROM’表之前加上一个括号,在匹配的Join‘on’子句上需要一个结束括号。

用户回答回答于

adsFormView.SelectCommand = _
    " SELECT * FROM ([tableCourse] " & _
    " INNER JOIN [tableGrade] " & _
    "     ON [tableCourse].[grading] = [tableGrade].[id]) " & _
    " INNER JOIN [tableCourseType] " & _
    "     ON [tableCourse].[course_type] = [tableCourseType].[id] " & _
    " WHERE [prefix]='" & myPrefix & "'" & _
    "   AND [course_number]='" & myCourseNum & "'"

扫码关注云+社区