具体的には以下のテーブルがあるとします。
コード1 コード2
--------------------
001 A001
001 B001
001 C001
002 A001
002 B002
002 C001
そして、コード2がA001とB001を持ったコード1を抽出したいのです。
結果としては
コード1
-------
001
となりたいんです。
条件で単に コード2=A001 AND コード2=B001 と書いただけでは無理でした。
もし、ORだったら仮に重複を省いても
コード1
---------
001
002
となって、002はB001がないにもかかわらず選ばれてしまうので意味がありません。
最終的には
コード2 IN (A001,A003) AND コード2 IN (C001, C002)のような条件にするのですが
上記の段階で上手く行ってないので質問させて頂きました。
No.3
- 回答日時:
>having count(*) =2の2の部分は毎回可変します。
WEBかなにかからデータとるんですよね?
だったら何個とんできているかなんかすぐわかるでしょう?
どうしてもその部分もSQLで処理したいなら
テンポラリテーブルに投入して、変数で受けるなどの処理になるでしょう
//元データはそのままだとして・・・
create temporary table temp(code2 varchar(10) unique key);
insert ignore into temp(code2) values('A001'),('B001');
//ヒットさせたいデータをテンポラリに投げておく
select @count:=count(*) from temp;
select code1 from hoge
inner join temp using(code2)
group by code1
having count(*)=@count;
ご回答頂きありがとうございます。
今作っているのはWEBページの詳細な検索処理で、項目でチェックボックスを使っています。いくつかチェックボックスを用いた項目はありますが、実際のデータは一つのテーブルでサンプルのような形で2つしか項目はありません。
Aという項目のデータがA001やA002に辺り、Bという項目のデータがB001、B002になります。
なので、Aという項目でユーザーが何個チェックをして、Bという項目で何個チェックするかは毎回変わると思うのです。
すでにあるテーブルをそのまま使って実現させたいのでわざわざcreateでテーブルを作ってやろうとはしたくないのですが無理でしょうか?
No.2
- 回答日時:
SELECT コード1
FROM テーブル名
WHERE コード2 IN('A001','B001')
GROUP BY コード1
HAVING COUNT(*)=2
ORDER BY 1
です。
ご回答頂きありがとうございます。
A No.1の方にも書きましたが
今回参考例として2つ同時としているだけで、最終的に作りたいものは何個になるか分からないものなので。
詳細検索の受け側の処理で、ユーザー側が何項目条件を設定するか分からないため、having count(*) =2の2の部分は毎回可変します。
No.1
- 回答日時:
コード1とコード2の組合せがユニークであれば単純
(ユニークではない場合はちょっと工夫が必要なので今回は略)
create table hoge(code1 varchar(10),code2 varchar(10),unique key(code1,code2));
insert into hoge values(
'001','A001'),(
'001','B001'),(
'001','C001'),(
'002','A001'),(
'002','B002'),(
'002','C001');
//表示
select code1
from hoge
where code2 in('A001','B001')
group by code1
having count(*) =2
ご回答頂きありがとうございます。
ただ、参考例では2つ同時としているのですが最終的に作りたいものは何個になるか分からないものなので。ユーザー側が何個設定するか分からないため、having count(*) =2の2の部分は毎回可変します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセル VBA 難しいです 1 2023/02/21 15:39
- その他(プログラミング・Web制作) atcoder python コードへの助言 2 2022/08/12 15:31
- Visual Basic(VBA) 3つの条件を指定してVBAで行を削除したい 条件1:分類1が重複 条件2:分類2が重複 条件3:個数 6 2022/06/24 11:07
- Excel(エクセル) 【詳しい方教えて下さい】EXCEL条件に一致する値の複数抽出 9 2022/04/29 10:56
- Visual Basic(VBA) コード名シートA列と集計シートA列のコードが一致したら、コード名シートA5からk12の範囲をコピーし 1 2022/08/29 23:46
- Visual Basic(VBA) VBA シート間の転記で、条件の追加コードの書き方について教えて下さい。 13 2023/02/26 09:31
- その他(Microsoft Office) Excel 2列の値を返す数式についてです 1 2022/11/23 22:59
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- Visual Basic(VBA) VBAのフィルター操作 5 2023/08/08 09:48
- JavaScript セレクトを全て選択されていないと、文字によるエラーメッセージを表示させるコードを調べています 2 2023/06/22 15:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
既存データをINSERT文にして出...
-
【SQL】他テーブルに含まれる値...
-
テーブル名が可変の場合のクエ...
-
データ無し時は空白行にしたい...
-
SQLで、Join句で結合したテ...
-
下記の問合せを行うクエリを、 ...
-
mdf&ldfファイルからフラット...
-
ACCESSのVBAにてExcelに行...
-
Access特定のテーブルを編集不...
-
「都道府県の面積の大きい順に...
-
パススルークエリ&ACCESSテーブ...
-
改行を含んだデータのインポート
-
SQLで複数のテーブルをつないで...
-
入退室時間の確認方法
-
IDとパスワードについて。
-
pandasでsqlite3にテーブル作成...
-
SELECT文の結果をDEFINEの値と...
-
CPRM decrypterのエラーコード...
-
ACCESS VBAでSeekメソッドの処...
-
(Linux、データベース初心者)...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【SQL】他テーブルに含まれる値...
-
テーブル名が可変の場合のクエ...
-
結合したテーブルをSUMしたい
-
既存データをINSERT文にして出...
-
SQLで、Join句で結合したテ...
-
データ無し時は空白行にしたい...
-
Accessの構成をコピーしたい
-
ACCESSのVBAにてExcelに行...
-
2つのテーブルをLIKE演算子のよ...
-
SQLサーバに対するSQL文で抽出...
-
ExcelのVLOOKUP関数の動作をMyS...
-
PRIMARY KEYのコピー
-
同一テーブル内での比較(最新...
-
ExcelのMatch関数のようなもの...
-
ADO+ODBCでテーブルに接続する...
-
Access 別のDBに対してDlookup...
-
改行を含んだデータのインポート
-
複数のテーブルからデータを取...
-
ACCESS クエリーでソートの不具合
-
副問合せを使わずにUNIONと同様...
おすすめ情報