2012-12-20 107 views
0

我有两个没有公共列的表。但是有关系。我有table1,table2。表1如下:如何从mysql中的两个未连接表中选择

t1.ID | t1.Name | t1.Number 

其中名称是唯一值。

表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。如何进行正确的查询,并获得相同的记录两次,而不是通过组?

回答

1

尝试使用DISTINCT

SELECT DISTINCT 1.Name, t1.Number, t2.country 
FROM db.t1, db.t2 
WHERE t1.Number BETWEEN t2.Number1 AND t2.Number2 
0

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

至少据我所知,情况是这样的。

0
select t1.Name ,t1.Number from t1 
union 
select t2.Number1 ,t2.Number2 from t2 

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

+1

只要记住,选择这两个表的说法应该是相同的计数。 –

相关问题