vol*_*one 28 sql sql-server sql-server-2012
回到过去,我曾经写过这样的select语句:
SELECT
table1.columnA, table2.columnA
FROM
table1, table2
WHERE
table1.columnA = 'Some value'
Run Code Online (Sandbox Code Playgroud)
但是我被告知在"FROM"子句中使用逗号分隔的表名称与ANSI92不兼容.应始终有一个JOIN语句.
这导致了我的问题....我想对两个表之间的数据进行比较,但两个表中没有用于创建连接的公共字段.如果我在FROM子句中使用逗号分隔的表名的"遗留"方法(参见代码示例),那么它的工作完全正常.如果被认为是错误的或不好的做法,我会感到不舒服.
谁知道在这种情况下该怎么做?
额外信息:
表1包含"地理"数据类型中的位置列表表2包含不同的"地理位置"列表
我正在写select语句来比较位置之间的距离.到目前为止,我知道你不能在地理专栏上加入?
Nen*_*vic 50
你可以(应该)使用CROSS JOIN.以下查询将等同于您的:
SELECT
table1.columnA
, table2.columnA
FROM table1
CROSS JOIN table2
WHERE table1.columnA = 'Some value'
Run Code Online (Sandbox Code Playgroud)
或者你甚至可以使用INNER JOIN和一些总是真实的条件:
FROM table1
INNER JOIN table2 ON 1=1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
105953 次 |
| 最近记录: |