4

Sql 查询是否有效。我在采访中被问到这个问题?

4

3 回答 3

5

这是一个有效的查询 - 它产生两个表的笛卡尔积。它等效于 ANSI SQL 语法中的此查询:

select *
from table1
join table2 on 1=1

不过,这个查询的有用性是值得商榷的。

这是关于 SQLFiddle 的演示

于 2013-01-18T02:40:30.423 回答
2

好吧,您编写的查询不是有效的查询:

Select *
from table 1, table 2 

不允许使用数字作为表别名。在许多数据库中,您可以执行以下操作:

select *
from table "1", table "2"

如果你想要数字别名。

如果您不打算在“1”和“2”之前使用空格,则查询等效于:

select *
from table1 cross join table2

完全有效,但cross join语法更可取。

于 2013-01-18T02:57:42.333 回答
0

这取决于您使用的数据库。

长期以来,它一直是有效的 SQL,但例如一些最新版本的 SQL Server 正在放弃语法以支持使用join关键字。

于 2013-01-18T02:44:40.963 回答