[英]Selecting unique value SQL
运行此SQL查询时,它会返回每个Find_ID四次,如何才能使它只选择唯一的查找?
SELECT A.FIND_ID, B.NAME, PERIOD
FROM FINDS A, CLASS B
WHERE A.X >= 4
AND A.X <= 10
AND A.Y >= 4
AND A.Y <= 10
AND FIND_ID = DISTINCT
这回来了
FIND_ID NAME PERIOD
========== ==================== ====================
2 SHARD BRONZE
5 SHARD BRONZE
2 METAL_WORK IRON_AGE
5 METAL_WORK IRON_AGE
2 FLINT MESOLITHIC
5 FLINT MESOLITHIC
2 BONE RECENT
5 BONE RECENT
使用distinct属性..从table1中选择Distinct(SAMPLE)
如果两个表FINDS和CLASS相关,则需要使用某种连接(INNER,猜测)。 您得到四个结果的原因是您正在运行一个返回结果的笛卡尔积的查询 - 也就是说,您将获得两个表连接在一起的所有组合,而没有将两个表连接在一起的公共字段。
这是一个例子。 假设你有两个非常简单的表格: -
PersonID Name
1 Matt
2 Fred
PersonID Salary
1 23000
2 18000
然后查询如下: -
SELECT * FROM Person, Salary
会返回类似的东西: -
PersonID Name PersonID Salary
1 Matt 1 23000
2 Fred 2 18000
1 Matt 2 18000
2 Fred 1 23000
Et voila,四个记录,你可能会期望两个。 将DISTINCT添加到此将不会实现任何效果,因为每个行都是不同的。 要链接相关表格,您需要以下内容: -
SELECT * FROM Person INNER JOIN Salary ON Person.PersonID = Salary.PersonID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.