Sql查询是否有效。 我在接受采访时被问过这个问题?
答案 0 :(得分:5)
这是一个有效的查询 - 它生成两个表的笛卡尔积。它等同于ANSI SQL语法中的此查询:
select *
from table1
join table2 on 1=1
但是,这个查询的用处是值得商榷的。
答案 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
关键字。