@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

SQL:1つの表中の2つの列値が同じレコードを抽出したいのですが。。。

1
投稿者投稿内容
nishiman
常連さん
会議室デビュー日: 2002/06/26
投稿数: 40
投稿日時: 2002-12-26 14:17
例えば、次の表があるとします。

【表名:T_test】

No UID NAME OP1 OP2
---- ---- ---- ---- ----
1 001 taro AAA zzz
2 002 jiro BBB yyy
3 003 taka CCC xxx
4 002 jiro BBB ppp
5 001 taro DDD ddd
6 002 jiro DDD ppp

この表のT_test内で、UIDとOP1が共に一致するレコードを抽出したいのですが、

--<抽出結果>-----------------------------
2 002 jiro BBB yyy
4 002 jiro BBB ppp
------------------------------------------

このためのSQL文はどう書けばいいのでしょうか?
教えていただけないでしょうか。。よろしくお願い致します。
永井和彦
ぬし
会議室デビュー日: 2002/07/03
投稿数: 276
お住まい・勤務地: 東京都
投稿日時: 2002-12-26 14:30
引用:

この表のT_test内で、UIDとOP1が共に一致するレコードを抽出したいのですが、



単純に考えると、

SELECT A.No, A.UID, A.NAME, A.OP1, A.OP2
FROM T_test A, T_test B
WHERE A.UID = B.UID
AND A.OP1 = B.OP1
AND A.No <> B.No

とかで抽出出来そうなイメージですが。
#実験はしていませんけれど


[ メッセージ編集済み 編集者: 永井和彦 編集日時 2002-12-26 14:39 ]
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2002-12-26 15:16
答えじゃないけど SQLはここらで質問したほうがいいかと

http://www.mars.dti.ne.jp/~o-shin/
http://www.sqlpowerpage.co.jp/
tabby
ベテラン
会議室デビュー日: 2002/06/26
投稿数: 55
お住まい・勤務地: 埼玉県・東京都
投稿日時: 2002-12-26 16:32
データと結果から推測するに、UIDとOP1がダブっているレコードのみを
抽出したいということで、いいのでしょうか?

結果だけではなくて、何をしたいのかを日本語で書いていただけると
回答がしやすいのですが…

SELECT A.No, A.UID, A.NAME, A.OP1, A.OP2
FROM T_test A,
(SELECT UID, OP1 FROM T_test GROUP BY UID, OP1 HAVING COUNT(*) > 1) B
WHERE A.UID = B.UID AND A.OP1 = B.OP1
1

スキルアップ/キャリアアップ(JOB@IT)