我目前正在编写一个C ++应用程序来解析和执行SQL语句。到目前为止,我已经很了解了,但是现在我发现很难继续,因为我不知道在某些情况下应该发生什么应该,例如表联接,例如:
SELECT col1.table1, col2.table2
FROM table1, table2;
未指定显式JOIN。
是否有网站或书籍或我可以参考的东西来查找在特定情况下应该发生的事情?我发现一个或两个允许交互式SQL的网站,但它们更关心正确的语法等。
我希望能够找到应该发生的情况,即使(特别是)仅仅意味着适当的错误消息。
答案 0 :(得分:1)
这是CROSS JOIN
的旧语法。基本上,表1中的所有行与表2中的所有行结合在一起:两个表的完全叉积。
这是一种完全有效的SQL语法,但是只是旧的(从80年代和90年代开始)。您最好只使用/接受CROSS JOIN
。
答案 1 :(得分:1)
您没有指定要使用哪种类型的SQL Server,但是MySQL是免费的,并且某些商业SQL供应商提供了其产品的免费开发人员版本。安装并尝试。
答案 2 :(得分:0)
如果您想知道应该发生什么,那么SQL2016标准是唯一值得一看的地方:https://www.iso.org/standard/63555.html
ISO / IEC 9075-1:2016描述了在ISO / IEC 9075其他部分中使用的概念框架,用于指定SQL 的语法以及通过SQL实现以该语言处理语句的结果。
大约$ 175 ...