アプリ版:「スタンプのみでお礼する」機能のリリースについて

初めまして、超初心者です。sqlのいろはから勉強し始めているところです。
初心者ながら質問をさせていただきたいのですがよろしいでしょうか。
勉強問題で躓いてしまった為ご相談です。

項目Aは同一データであるが、項目Bは異なる(同一ではない)データを探したいと思います。
下の表の場合では、「111」-「あああ」-「aaaaa」と「111」-「うううう」-「ccccc」が該当します。データはすべて文字列です。
問題集ではサブクエリーを使ってみるよう指示がありました。

■住所録
項目A  | 項目B  | 項目C
---------+------------ +-------------
111 | ああああ | aaaaaa
---------+------------ +-------------
222 | いいいい | bbbbbb
---------+------------ +-------------
111 | うううう | ccccccc
---------+------------ +-------------
222 | いいいい | dddddd

最初に項目Aが同じものをとりだして、次に項目Bが一致しないものをとりだすと、問題の答えになるように思うのですが、具体的にどうかいていいのかよくわかりません。ネットでもいろいろ検索してみたのですが、ぴったり当てはまる方法がみつかりませんでした。

あまりの初心者問合せで申し訳ありませんがアドバイスください。
よろしくお願いいたします。

A 回答 (1件)

いまの条件だけだとこんな感じ



//データ作成
create table tbl(項目A int,項目B varchar(20),項目C varchar(20));
insert into tbl values
(111,'ああああ','aaaaaa'),
(222,'いいいい','bbbbbb'),
(111,'うううう','ccccccc'),
(222,'いいいい','dddddd');

//結果
select * from tbl
where (項目A,項目B) IN(
select 項目A,項目B from tbl
group by 項目A,項目B
having count(*)=1
);

ただし条件が不足しています。
同じデータを含まないものなのか、含んでもいいけど2つ以上あるものなのかわかりません
つまり
(333,'えええ','eeeeeee'),
(333,'おおお','ffffff'),
(333,'おおお','gggggg'),
を投入した時、
「えええ」と「おおお」の2種類があるのでヒットさせるのか
「おおお」がかぶるのでヒットさせないのか決めないといけません
    • good
    • 0
この回答へのお礼

ありがとう

お礼が遅れてすいません。なかなかまとまった時間が取れず、お礼が遅れました。
全くの初心者なので、質問に不足などあり申し訳ありませんでした。教えていただいたことを使って、勉強してみます。ありがとうございました。

お礼日時:2017/10/29 23:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!