ASP+SQLServerを使用することになりました。(どちらも不得意です)
簡単なことかもしれませんがよく分からず数日悩んだ末、混乱してきたので質問させて頂きます。
助言をお願いします。
tableAにはa,b,c,d,eの5つのカラムがあります。
1) hogeと言う文字列が含まれたデータをc,d,eの三つのカラムの中から抽出。
2) 更に、その抽出結果が含まれたデータをtableBのカラムfから抽出。
3) 最終的にtableA.a, tableA.b, tableA.c, tableB.fと言う一覧を出したい。
のですが思ったように行きません。
1)の3つ目のカラムをtableB.fとinner join出来たら良いのに。と思いますが
1)が含まれる文字列になるので上手く行きません。
分かり難い表現で申し訳ありません。助けてください。
宜しくお願いします。
No.4ベストアンサー
- 回答日時:
遅くなりました。
これでどうでしょう?select 大分類, 中分類, 小分類, 品名
from (
SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.和名 as key1 FROM tableA WHERE ((tableA.和名) Like '%hoge%')
UNION
SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.カナ as key1 FROM tableA WHERE ((tableA.カナ) Like '%hoge%')
UNION
SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.英名 as key1 FROM tableA WHERE ((tableA.英名) Like '%hoge%')
) Q_A, tableB Q_B
where Q_B.品名 like '%'+Q_A.key1+'%'
ありがとうございました。
旅行に行っていた為、お礼が遅くなり申し訳ありませんでした。
'%'+Q_A.key1+'%'
+で囲むんですね。変数を入れるしか無いのかと悩んでいたのでスッキリしました。
No.5
- 回答日時:
返事が遅れました。
文字列「イチゴ」が、
tableAの和名、カナ名、英名のいずれかに含まれていて、
その抽出した和名 or カナ名 or 英名が、
tableBの品名に含まれている
という検索がしたいのであれば、
回答者:sakko99 がANo.4で書いてくれたSQLで正解だと思います。
ただ、ANo.3の補足のところで、
質問者:KENT-MILD9さんが書いてくれたデータ例に気になる点があります。
【TableBの情報】
> TableBのカラムfには例えば
> [苺飴,イチゴキャンディー,strawberry candy]
> [胡麻飴,ゴマキャンディー]
> [水飴]
> [orange candy]
【TableAの情報】
> 大分類|中分類|小分類|和名 |カナ名 |英名
> ----------------------------------------------------------------------
> お菓子|その他|飴 |苺飴 |ストロベリーキャンディー|strawberry candy
> お菓子|その他|飴 |胡麻飴|ゴマキャンディー |sesame candy
このデータだと、
SQLを実行すると検索結果は0件になります。
TableAのカナ名の「ストロベリーキャンディー」は、
「イチゴキャンディー」の間違いでしょうか?
もし、このデータを正として質問のような検索結果が得たいのであれば、
SQLは全く違うものになります。
KENT-MILD9さんの質問意図をとらえ違えているといけないので
補足をよろしくお願いします。
申し訳ありません。イチゴキャンディーの誤りです。
親身にご回答頂き感謝致します。
一人で悩んでいても解決しなかったので心強かったです。
この度はありがとうございました。
No.3
- 回答日時:
TableAの和名に「品目A」「品目B」、TableBのカラムfに「aa品目A11」「aa品目A12」「bb品目B11」「bb品目B12」が
入っている場合があるということでしょうか。
この場合、「品目」で検索して、欲しい結果は以下ですか?
TableAの和名 TableBのカラムf
品目A aa品目A11
品目A aa品目A12
品目B aa品目B11
品目B aa品目B12
和名、カナ名、英名の扱いは判りましたが、TableBのカラムfの情報をもう少し具体的にお願いします。
この回答への補足
TableBのカラムfには例えば
[苺飴,イチゴキャンディー,strawberry candy]
[胡麻飴,ゴマキャンディー]
[水飴]
[orange candy]
と言うように和名、カナ名、英名が混在していて、tableAは
大分類|中分類|小分類|和名 |カナ名 |英名
----------------------------------------------------------------------
お菓子|その他|飴 |苺飴 |ストロベリーキャンディー|strawberry candy
お菓子|その他|飴 |胡麻飴|ゴマキャンディー |sesame candy
と言う感じのデータが入っています。
イチゴで検索した時に以下のように表示されれば良いと思っています。
tableA.大分類|tableA.中分類 |tableA.小分類 |tableB.品名
----------------------------------------------------------------------
お菓子 |焼き菓子 |クッキー |イチゴクッキー
お菓子 |氷菓子 |アイスクリーム|ストロベリーアイス
お菓子 |その他 |飴 |苺飴
見難くて申し訳有りません。
これでイメージが伝わったら幸いです。
No.2
- 回答日時:
質問内容に不明な点があるので、詳しく追記をおねがいします。
> 1) hogeと言う文字列が含まれたデータをc,d,eの三つのカラムの中から抽出。
> 2) 更に、その抽出結果が含まれたデータをtableBのカラムfから抽出。
→tableAとtableBを結合する条件を詳しく教えてください。
上記の表現ではわかりません。
> 1)が含まれる文字列になるので上手く行きません。
→言っている意味がわかりません。
具体的に、実行したSQLを載せてください。
よろしくお願いします。
この回答への補足
このような質問にご回答ありがとうございます。情報が足りず失礼致しました。
tebleBのカラムfは品名です。現在このカラムのデータは和名、カナ名、英名が混在しています。
そして、その品名を補完する為のデータがtableAに格納されています。(大分類、中分類、小分類、和名、カナ名、英名)
今回は検索したい文字列が和名、カナ、英名のいずれかなのでtableAに問い合わせ、そのデータが含まれるtebleBのカラムfのデータを紐つけて表示させたいと思っています。
こんなイメージです。
tableA.大分類, tableA.中分類, tableA.小分類, tableB.品名
以下で和名、カナ、英名カラムを和結合(大分類、中分類、小分類カラムを表示)
SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.和名 FROM tableA WHERE ((tableA.和名) Like '%hoge%')
UNION SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.カナ FROM tableA WHERE ((tableA.カナ) Like '%hoge%')
UNION SELECT tableA.大分類, tableA.中分類, tableA.小分類, tableA.英名 FROM tableA WHERE ((tableA.英名) Like '%hoge%')
全てSQL文でやってしまいたかったのですが良く分からず、この和結合したデータを配列に格納してtableB.品名の問い合わせをlikeで行いinner joinしたらどうかと考えました。
tebleBを設計し直したら良いのでしょうが事情があり今は弄れません。
宜しくお願いいたします。
No.1
- 回答日時:
tableAとtableBをどうjoinしたいのか判りません。
tableAの抽出後でtableA.C=tableB.f?
>1)が含まれる文字列になるので上手く行きません。
↑の意味が判りません。
もう少し具体的にお願いします。
それからこの内容であればASPよりSQLServerのカテゴリの方が
良いと思います。
この回答への補足
このような質問にご対応下さり、ありがとうございます。
> tableAとtableBをどうjoinしたいのか判りません。
> tableA.C=tableB.f
>>1)が含まれる文字列になるので上手く行きません。
>↑の意味が判りません。
上の方の補足投稿でまとめさせて頂きました。
> それからこの内容であればASPよりSQLServerのカテゴリの方が
> 良いと思います。
ご指摘ありがとうございます。質問する際、迷ったのですがSQL文で全てまかなえないのではないかと思ったので、こちらで質問させて頂きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) カラム上の重複を削除するクエリを教えてください 3 2022/04/12 14:11
- MySQL SQLについて教えて下さい。 SELECT分で、あるカラムにある日付の 半年先のデータを取って来たい 3 2022/12/07 22:28
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Excel(エクセル) エクセルで#以降の文字を取得したい 1 2022/03/28 13:14
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- PostgreSQL 列が存在しないと言われる 2 2023/02/10 18:33
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- Excel(エクセル) エクセルのデータ整形について 3 2022/11/12 00:27
- UNIX・Linux sedでの正規化 2 2022/05/10 11:39
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキスト幅にあわせた表の作り...
-
Access:クエリーにて集計後に...
-
1、Rstudioで回帰直線を求める...
-
カーソル宣言をIFで分けられま...
-
複数テーブルのGROUP BY の使い...
-
フィルターかけた後、重複を除...
-
for whichの使い方
-
no appleとno applesの違いは?
-
外部参照してるキーを主キーに...
-
クロス集計で、列を動的に
-
特定の文字列で列を区切るには?
-
誰か教えてください
-
Word差し込み印刷 数式について
-
次の並び替え問題を教えてくだ...
-
Access2016 リストボックスに検...
-
SQLServerで文字列の末尾からあ...
-
メルペイとメルペイid決済の違...
-
エクセルVBAでEdate関数は使え...
-
datetime型でNULL値を入れたい。
-
1テーブル&複数レコードの更新...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLで特定の項目の重複のみを排...
-
リストビューの項目の内容を変...
-
COBOLについて
-
バッチでcsvファイルの指定のカ...
-
php mysql で WHERE句内に変数...
-
DataViewで複数条件の...
-
COBOL プログラミング
-
Zend_DBを使ったselectで文字が...
-
DataGridView 右詰め
-
fgetcsvでCSVを取得した際のnul...
-
初心者)DataGridViewの入力桁...
-
ListView
-
google formsを使ったタスク依...
-
FormulaR1C1でSUMIF変数指定
-
javaの文字列で特定の文字列置換
-
前回ご教授いただいたコードに...
-
Sheet3から2つの条件でオートフ...
-
PHPでDBからデータを抽出してHT...
-
データ一部分の合計を求めたい
-
ListViewのカラムの色の変更
おすすめ情報