2016-08-13 17 views
0

私はすべてのHome(テーブル名)変数で 'distinct'を使用しようとしていますが、他のテーブルからも他の変数も選択しています。どのように私はホーム変数/または特定の列だけに異なる選択を選択できますか?特定のテーブル変数に対してdistinctを使用するにはどうすればよいですか?

このクエリは、anotherTableのものを含むALL変数にdistinctを使用しています。

は、ここに私のクエリ

SELECT distinct f.q_id, f.var2, f.var3, f.var4, m.var22 
FROM Home f, anotherTable m 
WHERE f.q_id = m.q_id 

私は明確なと個別に変数をラップしようとしたであるが、それは私が変数の私の明確な好みを行うことができません。

+1

サンプルデータと期待される結果が参考になります。特定の列から重複したデータを表示したくない場合は、表示する必要がありますか? – sgeddes

+0

@sgeddes f.q_id、f .___などの家庭変数ではっきりと区別する必要があります – mweis

+0

'anotherTable'に複数の値が存在する場合、' var22'はどのような値を返すべきですか? 'min'、' max'、その他何か?したがって、理由のサンプルデータと期待される結果が役立ちます。 'from'節でコンマではなく' join'を使うこともお勧めします。 – sgeddes

答えて

0

一つの方法は、group byを使用しています。

SELECT f.q_id, f.var2, f.var3, f.var4, MAX(m.var22) 
FROM Home f JOIN 
    anotherTable m 
    ON f.q_id = m.q_id 
GROUP BY f.q_id, f.var2, f.var3, f.var4; 
+0

lindoff beautiful!はうまく機能しますが、 'var22'どんなアイデアですか? – mweis

+0

Nevermind!は別名を設定するために 'as'を後で使用しました。 – mweis

1

は、これを試してみてくださいのみホームからDISTINCTデータを選択するようにしてALL anotherTableから:

SELECT t.q_id, t.var2, t.var3, t.var4, m.var22 
FROM anotherTable m 
INNER JOIN (SELECT DISTINCT 
      f.q_id, f.var2, f.var3, f.var4 FROM Home f) t ON t.q_id = m.q_id 
+0

重複を取得する:( – mweis

+0

要件に応じてm.var22列にSUM機能またはMAX機能を追加すると、データを投稿して出力できます。 – Susang

関連する問題