我在android中使用它,但使用SQLite Studio 2.1.4进行测试。
我有两张桌子:A和B. A有2条记录,B没有记录。
如果我查询
select * from A
我在那张表中得到了结果,没问题。
如果我查询
select * from B
我没有结果,这也很好。
但是,如果我查询:
select * from A, B
我也没有结果,这是错误的......我应该从A得到结果,对吗?
或者SQLite与其他DBMS有些不同吗?
答案 0 :(得分:4)
来自A,B的SELECT *是两个表的笛卡尔连接。换句话说,表A中的每一行都连接到表B中的每一行。因此,如果A有5行而B有10行,则结果集中最后会有50行。在这种情况下,表B的行数为零,因此无论A包含多少行都没关系,因此不会返回任何行。
您将在所有关系数据库中找到相同的行为。