gpt4 book ai didi

SQLite 接受 SQL 语法中不存在的连接类型

转载 作者:行者123 更新时间:2023-12-03 17:11:09 26 4
gpt4 key购买 nike

我在 SQLite 中发现了这种意外行为。 SQLite 似乎接受 SQL 连接语法中的任意关键字。如果我不小心键入了 natural join 而不是 natural join,则会生成笛卡尔积。这是预期的行为、功能还是错误?

select count(*) from pri; -- 22
select count(*) from sec; -- 57458

select count(*) from pri natural join sec; -- 57458
select count(*) from pri nautral join sec; -- 1264076
select count(*) from pri advanced natural join sec; -- 57458
select count(*) from pri imaginary join sec; -- 1264076

在 Debian 6.0 上使用 SQLite 3.7.3 和在 Windows 7 上使用 SQLite 3.7.5 进行测试。

补充:SQLite 是一款出色的数据库软件,我推荐中小型项目使用它。这是 my brief SQLite vs PostgreSQL comparison.

最佳答案

nautralimaginary 被解析为表的别名:

select count(*) from (pri) natural join sec; -- 57458 
select count(*) from (pri AS nautral) join sec; -- 1264076
select count(*) from (pri AS advanced) natural join sec; -- 57458
select count(*) from (pri AS imaginary) join sec; -- 1264076

关于SQLite 接受 SQL 语法中不存在的连接类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com