gpt4 book ai didi

sql - 从 SQL Server 中没有公共(public)字段进行连接的两个表中进行选择的正确方法

转载 作者:行者123 更新时间:2023-12-01 19:58:00 25 4
gpt4 key购买 nike

以前,我曾经这样编写选择语句:

SELECT 
table1.columnA, table2.columnA

FROM
table1, table2

WHERE
table1.columnA = 'Some value'

但是我被告知在“FROM”子句中使用逗号分隔表名与 ANSI92 不兼容。应该始终有一个 JOIN 语句。

这导致了我的问题......我想对两个表之间的数据进行比较,但两个表中没有用于创建联接的公共(public)字段。如果我在 FROM 子句中使用逗号分隔表名的“传统”方法(请参阅代码示例),那么它工作得很好。如果这种方法被认为是错误或不好的做法,我会感到不舒服。

有人知道遇到这种情况该怎么办吗?

额外信息:

Table1 包含“地理”数据类型的位置列表表 2 包含不同的“地理位置”列表

我正在编写 select 语句来比较位置之间的距离。据我所知,你不能在地理列上进行 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

关于sql - 从 SQL Server 中没有公共(public)字段进行连接的两个表中进行选择的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17582313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com