2012-02-24 6 views
4

DISTINCTの値をテーブル内の1つの列に取得しようとしています。しかし、この列は別のテーブルからidまでのINNER JOINEDです。SQL結合テーブルに対するDistinct値

DISTINCTを列に使用しようとすると、DISTINCTも一意のID IDを考慮に入れているため、同じ結果が得られます。これはちょうどDISTINCTの値を結合されたテーブルから取得するための回避策はありますか?

EG。

SELECT val1, b.val2, val3 
    FROM TABLE 1 
    JOIN (SELECT DISTINCT val2 
      FROM TABLE 2) AS b ON val1 = b.val2 
+0

どのデータベースについてですか? –

+0

imはASP.NET sqlクエリ – karlstackoverflow

+0

を使用しています。いいえ、SELECT DISTINCT val2 FROM TABLE 2はIDも考慮しません。そのサブクエリだけを実行すると、必要なDISTINCT値だけが得られます。結果はどのように見えますか? –

答えて

0

私の解決策を提供するために: 私が参加して、すべてのネスト解除値(すべてをネストされた明確なを使用して終了20+ )は、MIN(x)の周りにラップされなければならず、それらの値がそれほど重要ではないことが分かりました。

5

代わりにDISTINCT、GROUP BYの中で投げてみてください。

SELECT val1 
    , b.val2 
    , val3 
    FROM TABLE 1 
    JOIN (SELECT val2 
      FROM TABLE 2 GROUP BY val2) AS b ON val1 = b.val2 
+0

理由はわかりませんが、GROUP BYは常にエラーを引き起こします。クエリビルダでこれをやっているのは、Visual Studio 2010 – karlstackoverflow

+0

です。列 'x'は集計関数またはGROUP BY句に含まれていないため、選択リストでは無効です。 – karlstackoverflow

+3

結果は同じです - 'GROUP BY val2'は別個の/一意の' val2'値を返します。 –

関連する問題