是“从表1中选择*,表2是有效查询吗?

时间:2013-01-18 02:38:44

标签: sql

Sql查询是否有效。 我在接受采访时被问过这个问题?

3 个答案:

答案 0 :(得分:5)

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

select *
from table1
join table2 on 1=1

但是,这个查询的用处是值得商榷的。

这是demo on SQLFiddle

答案 1 :(得分:2)

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

Select *
from table 1, table 2 

不允许使用数字作为表别名。在许多数据库中,您可以这样做:

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

如果你想要数字别名。

如果你没有打算“1”和“2”之前的空格,那么查询相当于:

select *
from table1 cross join table2

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

答案 2 :(得分:0)

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

很长一段时间它都是有效的SQL,但是最近一些版本的SQL Server正在放弃语法,转而使用join关键字。