我正在尝试使用交叉连接来支持两个表格,如下所示
select * from nasda_objects
cross join (select * from nasda_objects);
同样有效
但是当我尝试在交叉连接的左表中使用时,它不起作用
select * from nasda_objects where co_gid in (450,550,650)
cross join (select * from nasda_objects);
那么不支持同一查询中的交叉连接吗?
答案 0 :(得分:0)
试试这个;
select * from nasda_objects cross join (select * from nasda_objects)
where co_gid in (450,550,650);
即,当您加入表格时,需要在最后添加where
条件。
答案 1 :(得分:0)
结构合理的查询:
select *
from nasda_objects cross join (select * from nasda_objects);
where co_gid in (450, 550, 650)
无效,因为未定义co_gid
。所以你知道,CROSS JOIN
是SQL中的一个运算符,只在FROM
子句中 。 WHERE
子句位于FROM
子句之后。
要防止语法错误,您需要表别名。我认为这就是你想要的:
select *
from nasda_objects o1 cross join nasda_objects o2
where o1.co_gid in (450, 550, 650) ;
请注意,也不需要子查询。
我不确定你为什么要这样做。通常不需要cross join
到同一个表。