【发布时间】:2013-07-09 01:43:24
【问题描述】:
在过去,我曾经写过这样的选择语句:
SELECT
table1.columnA, table2.columnA
FROM
table1, table2
WHERE
table1.columnA = 'Some value'
但是有人告诉我,在“FROM”子句中使用逗号分隔的表名与 ANSI92 不兼容。应该总是有一个 JOIN 语句。
这导致了我的问题....我想比较两个表之间的数据,但是两个表中没有用于创建连接的公共字段。如果我在 FROM 子句中使用逗号分隔表名的“遗留”方法(参见代码示例),那么它工作得非常好。如果这种方法被认为是错误或不好的做法,我会感到不舒服。
有人知道在这种情况下该怎么办吗?
额外信息:
Table1 包含“地理”数据类型的位置列表 表 2 包含不同的“地理”位置列表
我正在编写选择语句来比较位置之间的距离。据我所知,您不能在地理列上进行 JOIN??
【问题讨论】:
-
如果没有公共字段,你会如何比较?
-
Table1, Table2在功能上与Table1 CROSS JOIN Table2相同,这真的是您想要实现的吗?如果一个表有多于一行,则两个表中的行都会重复...您可能应该给出一些示例输入数据和相应的示例输出数据。 -
是的 MatBaile,我需要使用交叉连接。谢谢你的帮助
标签: sql sql-server sql-server-2012