我有两个没有公共列的表。但是有关系。我有table1,table2。表1如下:
t1.ID | t1.Name | t1.Number
名称是唯一值。
table2如下:
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。如何进行正确的查询,并且在没有分组的情况下获得相同的记录两次?
答案 0 :(得分:1)
尝试使用DISTINCT
:
SELECT DISTINCT 1.Name, t1.Number, t2.country
FROM db.t1, db.t2
WHERE t1.Number BETWEEN t2.Number1 AND t2.Number2
答案 1 :(得分:0)
两个表中应该至少有一列共有。否则,您将只获得重复值。
至少据我所知,情况就是这样。
答案 2 :(得分:0)
select t1.Name ,t1.Number from t1
union
select t2.Number1 ,t2.Number2 from t2
在这种情况下你可以使用union。