- ベストアンサー
二つのテーブルからDISTINCTする
お世話になっております。 二つのテーブルにそれぞれ「商品ID」というカラムがあるとします。 その「商品ID」をそれそれのテーブルをあわせたものからDISTINCTしたいのです。 ex) TABLE-A [1 , 5 , 8 , 6 , 3] TABLE-B [1 , 5 , 7 , 10 , 12 , 13] 結果[1 , 3 , 5 , 6 , 7 , 8 , 10 , 12 , 13] よろしくお願いします。
- qaznet
- お礼率17% (15/87)
- その他(データベース)
- 回答数1
- ありがとう数0
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
SELECT [TABLE-A].商品ID FROM [TABLE-A] UNION SELECT [TABLE-B].商品ID FROM [TABLE-B] ORDER BY 商品ID
関連するQ&A
- distinct をexistsに変換する
distinctをexistsに変換した方がパフォーマンスが良いようで、 例えば以下の例があるとします ---------------------------------- (前)SELECT DISTINCT a.ID1, a.NAME1 FROM TABLE1 a, TABLE2 b WHERE a.ID1 = b.ID2 (後)SELECT a.ID1, a.NAME1 FROM TABLE1 a WHERE EXISTS ( SELECT 'X' FROM TABLE2 b WHERE a.ID1 = b.ID2) ---------------------------------- もっと複雑なSQLの場合、EXISTSに変換できるのでしょうか?。複雑なSQLとは、 「複数のテーブルからカラムを取得」「テーブル結合が2つ以上」「外部結合」 などのSQLで、以下に例を示します。 (例)SELECT DISTINCT a.ID1,a.NAME1,b.ID2,b.NAME2,c.ID3,c.NAME3 FROM TABLE1 a,TABLE2 b,TABLE3 c WHERE a.ID1 = b.ID1(+) AND a.ID1 = c.ID1(+)
- ベストアンサー
- Oracle
- DISTINCT + COUNT
みなさんこんにちは。 以下のようなSQL文のCOUNT関数を作りたいのですが、 うまい手法がわからず困っています。 SELECT DISTINCT Ta.会員ID, Tb.品番 FROM TABLE_A AS Ta LEFT JOIN TABLE_B AS Tb ON Ta.ID = Tb.ID ↑こいつのCOUNTですが、単純に SELECT COUNT(DISTINCT Ta.会員ID, Tb.品番) ~ とやるとエラーになってしまいます。 どうやってやればカウントできるのでしょうか? すごく初歩的なことだと思いますが、 ご助言お願いいたします。
- ベストアンサー
- その他(データベース)
- DISTINCTの使い方を教えて下さい
Select 文で DISTINCT を記述すると結果(Count)は-1となってしまいます。 DISTINCTを外すと全件表示されます。 これは何がまずいのでしょうか ? 環境 DB=SQLserver 2000 + IIS 5.0 + ASP 例:Select DISTINCT TABLE1,TABLE2,TABLE3 FROM TABLE ちなみにdbをAccess で使用している時とクエリアナライザではOKでした。
- ベストアンサー
- Microsoft ASP
- oracle9i distinct
select distinct 1 as aaa, bbb from table_a aaa bbb -------------------------- 1 a 1 b 1 c この場合の「distinct 1」というのは table_aの1列目でdistinctするという 意味でいいのでしょうか? でもdistinct 2 とすると、aaaの列の値が2になるだけなのですが・・。 すみませんがdistinct 1 の意味を教えていただけますでしょうか。
- ベストアンサー
- その他(データベース)
- SELECT DISTINCT の使いかた
テーブル名にA1,A2,A3と言う列がありA1内の列の重複を省き 結果をA1,A2,A3全て表示したいのですが方法がわかりません。 どなたかHELP お願いします。 SELECT DISTINCT A1 FROM テーブル
- ベストアンサー
- その他(データベース)
- 複数のテーブルからデータを取得したい
1つのテーブルから重複したデータを取り除いて表示するときに使う 【select distinct カラム名 from テーブル名;】 がありますよね。 それと同じようなことを複数のテーブルをまたいで行いたいのですがうまくいきません。 ちなみに両方のテーブルのカラム名は同じです。 【select distinct カラム名 from テーブル1 union select distinct カラム名 from テーブル2;】 としても重複を取り除いた後にテーブルを結合してるので結果的に両テーブルの重複した値を取り除くことができず。 そこで 【select distinct T1.カラム名, T2.カラム名 from テーブル1 T1. テーブル2 T2;】 としてみたのですが、クエリを実行中のまま反応がないので悩んでます。 ちなみに2つのテーブルのデータはそれぞれ2万件ほどです。 こういう時どういうsql文を組むのが正しいのでしょうか?
- ベストアンサー
- MySQL
- SELECT/別テーブルのレコード数も取得したい
■環境 ・MySQL ■前提 ・テーブルA … idカラム ・テーブルB … A_idカラム ■やりたいこと ・テーブルAデータを取得する際、テーブルAレコードに応じて、テーブルB「A_idカラム」の数(レコード数)も取得したい ■取得イメージ例 ・テーブルA「全カラム」、「count」カラム ※「count」カラム … テーブルBにある「A_idカラム」の数 ■知りたいこと ・どこにも存在しないこの「count」カラムはどうやって作成したら良いでしょうか? ・全体のSQL文
- ベストアンサー
- MySQL
- SELECT DISTINCTとWHERE
アクセス2010 テーブルAから、右2文字の重複しないテーブルBをつくり、さらにさらにテーブルBとも重複しない左2文字のテーブルCをつくりたい。 テーブルA [F00] ABCD ABAB EFGH IJGH INSERT INTO テーブルB (F1) SELECT DISTINCT Left([F00],2) AS F1 FROM テーブルA テーブルB [F1] AB EF IJ (うまくいきました) INSERT INTO テーブルC (F1) SELECT DISTINCT Right([F00],2) AS F1 FROM テーブルA,テーブルB WHERE テーブルB.F1<>Right(テーブルA.F00,2) (うまくいきません) 下記のようにしたいのですが。 テーブルC [F1] CD GH
- ベストアンサー
- その他(データベース)
- DISTINCTの使い方について
--------------------------------- 元データ --------------------------------- ID CATEGORY CREATE_DATE 001 A100 2008/10/01 002 B100 2009/01/01 003 C100 2009/01/01 004 A100 2009/02/01 005 B100 2009/02/01 006 A100 2009/03/01 --------------------------------- --------------------------------- 出力したい形式 --------------------------------- ID CATEGORY CREATE_DATE 003 C100 2009/01/01 005 B100 2009/02/01 006 A100 2009/03/01 --------------------------------- 「CATEGORY」でユニークになるようにしたいと思っています。 重複しているものは、最新のデータ(CREATE_DATEが新しいもの)を 優先して取得したいと思っています。 ============================= SELECT DISTINCT(CATEGORY) CATEGORY, ID, CREATE_DATE FROM TABLE_NAME ORDER BY CREATE_DATE DESC ============================= というSQLを書いてみましたが、「CATEGORY」でユニークになって くれません。 また「CREATE_DATEが新しいもの」という点はORDER BY で行えば 良いのでしょうか? 以上、よろしくお願いいたします。
- ベストアンサー
- Oracle