0

我有两个没有公共列的表。但是有关系。我有表1,表2。表1如下:

t1.ID | t1.Name | t1.Number

其中 Name 是唯一值。

表2如下:

t2.ID | t2.Number1 | t2.Number2 | t2.Country

我的查询如下:

select t1.Name, t1.Number, t2.country
from db.t1, db.t2
where t1.Number between t2.Number1 AND t2.Number2

查询的结果是我得到了每条记录两次。但是,当我添加:

group by t1.Name

我得到了正确的结果(每条记录一次)。我不想使用分组依据。如何进行正确的查询,我是否可以在没有 group by 的情况下两次获得相同的记录?

4

3 回答 3

1

尝试使用DISTINCT

SELECT DISTINCT 1.Name, t1.Number, t2.country
FROM db.t1, db.t2
WHERE t1.Number BETWEEN t2.Number1 AND t2.Number2
于 2012-12-20T13:10:34.127 回答
0

至少应该有两个表共有的一列。否则你只会得到重复的值。

至少据我所知是这样的。

于 2012-12-20T13:08:26.177 回答
0
select t1.Name ,t1.Number from t1
union
select t2.Number1 ,t2.Number2 from t2

在这种情况下,您可以使用联合。

于 2012-12-20T13:09:51.687 回答