回顾过去,我曾经这样编写select语句:
SELECT table1.columnA, table2.columnA FROM table1, table2 WHERE table1.columnA = 'Some value'
但是,我被告知,在“ FROM”子句中用逗号分隔表名不兼容ANSI92。始终应该有一个JOIN语句。
这导致了我的问题。…我想对两个表之间的数据进行比较,但是两个表中都没有用于创建联接的公共字段。如果我在FROM子句中使用逗号分隔的表名的“旧式”方法(请参见代码示例),则它可以很好地工作。如果认为这种方法是错误的或不正确的做法,我会感到不舒服。
有人知道在这种情况下该怎么办吗?
额外信息:
Table1包含“地理位置”数据类型的位置列表Table2包含“地理位置”数据的不同列表
我正在写select语句来比较位置之间的距离。据我所知,你不能在地理专栏上加入JOIN吗?
您可以(应该)使用CROSS JOIN。以下查询将等同于您的查询:
CROSS JOIN
SELECT table1.columnA , table2.columnA FROM table1 CROSS JOIN table2 WHERE table1.columnA = 'Some value'
或者甚至可以将INNER JOIN与始终正确的条件一起使用:
FROM table1 INNER JOIN table2 ON 1=1