0

共通の列がないテーブルが2つあります。しかし、関係があります。table1、table2があります。表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

クエリの結果として起こっていることは、各レコードを2回取得することです。しかし、私が追加すると:

group by t1.Name

正しい結果が得られます(各レコードは1回)。groupbyを使用したくありません。正しいクエリを作成し、group byなしで同じレコードを2回取得するにはどうすればよいですか?

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

両方のテーブルに共通する列が少なくとも1つ必要です。それ以外の場合は、重複する値のみを取得します。

少なくとも私の知る限り、そうです。

于 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 に答える