【发布时间】:2010-10-11 18:30:33
【问题描述】:
我在这里使用 SQL 视图有一个简单的问题。我现在似乎无法弄清楚。
- 我有 2 个表,TableA 和 TableB。
- 我想检索 TableA 中的 FieldA 和 TableB 中的 FieldB。
- 这两个表使用一个 内连接。
- 我只想要 TableA.FieldA 所在的行 是不同的。
- 返回的值应该是 TableB.FieldB 中的前 10 项
简单地使用 SELECT DISTINCT 似乎是使用两个字段的组合来确定区别。
有什么想法吗?
这是当前返回所有行的 SQL 的模拟:
SELECT dbo.TableA.FieldA, dbo.TableB.FieldB
FROM dbo.TableA INNER JOIN dbo.TableB ON dbo.TableA.ID = dbo.TableB.TableAID
从这个标准查询返回的数据示例如下:
FieldA FieldB
John 78
John 21
Claire 18
Sam 16
John 25
Claire 48
Paul 53
我希望从查询中返回的是:
John 78
Paul 53
Claire 48
Sam 16
**已编辑以尝试使事情更清晰并包含缺失的信息。
【问题讨论】:
-
您的目标没有完全定义,这可能是问题的一部分。如果您只想从 TableA 中区分 FieldA,如果存在多个,则哪些规则确定您将使用 TableB 中的哪个 FieldA?
-
您可能想要定义您的表数据。即第一组数据FieldA FieldB是来自TableB吗?而您希望TableB 中的前十名由什么定义?有订单吗?
标签: sql database select distinct