質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

解決済

SQLの質問です。複数のカテゴリを持つ単一商品の画像URLを取得したいのですがうまくいきません。

tao
tao

総合スコア1

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

4回答

0評価

1クリップ

263閲覧

投稿2022/06/29 18:45

下記のようなテーブル構造でカテゴリが1でもあり2でもある商品の商品画像URLを取得したいのですがうまく行きません。SQLについてスキルが乏しく色々と試したのですが思う結果にならずお力をお借りできればと思います。

商品テーブル

商品IDカテゴリ
1001
1002
2001
2003
3002
3003
4001
4002

商品画像テーブル

商品画像URL
100URL1
200URL2
300URL3
400URL4

上記のテーブル構造でカテゴリが1、2どちらにあてはまる100と400の商品画像テーブルの下記の結果が得られれば良いのですが、どうぞよろしくお願い致します。

100URL1
400URL4

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

BeatStar

2022/06/29 22:14

あまり使い慣れていませんけど、一旦group by句でグルーピングしてそれを全体集合として再度検索する感じになると思います。
CHERRY

2022/06/29 22:16

試した SQL 文と結果を質問に追記していただけないでしょうか。
gU8C8Nud4E8p3uW

2022/06/30 02:49 編集

どちらかに、どちらにも、どっちにも受け取れる曖昧な表現はよくない。「カテゴリが1、2どちらにあてはまる」「100と400の」はand条件ってことなのかな?
yambejp

2022/06/30 00:22 編集

1,2,3が設定されているデータがある場合はどうしたいのでしょうか? 1,1や1,1,2などの場合はありますか?
tao

2022/06/30 02:21

皆様、ご指導いただきありがとうございます。 CHERRY様 まず試したSQLですが、サブクエリもまともに理解できていたに状態で、エラーで実行できないか、0件表示などわけもわからず色々といじった状況で追記できる状況ではありません。本当にスキル不足で申し訳ありません。 yambejp様 カテゴリは1、2、3など1、2以外が設定されいることはあります。 ただし同一の商品IDで同じカテゴリをもっているデータはありません。 sPy2bUDOZ4uRa7t様 ご指摘頂いているあいまいな表現がどこかもわからないスキルです。 前任者から素人状態で受け取り手探りで1日ぐらい悩んで質問させて頂きました。 これからスキルを上げて行きたいと思います。 ご指導ありがとうございます。
BeatStar

2022/06/30 02:36

@ 質問者さん 横からになりますが、 > エラーで実行できないか、0件表示などわけもわからず色々といじった状況で追記できる状況ではありません とありますね。それについて書きますが、そういう場合は「実際に試したこと」(SQL文等も含む)と「その結果」をそれぞれ書いたほうがいいですよ。 というのも、エラーメッセージは単にできなかっただけではなく、MySQL等からのメッセージです。 メッセージにヒントが隠されています。 それに「試したこと」がかかれていないいと、回答者からすると回答しづらいのです。別に質問者に完璧さを求めていません。できないから質問するのであって、答えそのものを知っているのなら聞く必要がないからです。 質問者がわからないからと馬と鹿にする回答者はいません。 課題丸投げとかは別ですが。 今回のような場合はまだいいですがものによっては質問者さんの技量がわからないと回答の仕様がない場合もありますよ。単に「grepして○○して…すればいい」と曖昧な表現でもいいのなら構いませんが、大体の場合は細かく説明されないと理解できないことが多いです。 それなのにその人の技量がわかるような質問文でないならまともな回答のしようがないのです。 そういったことから、次回からは「試したこととその結果」をそれぞれ書きましょう。二つ試したなら2種類、三つ試したなら3種類書きましょう。
tao

2022/06/30 04:37

BeatStar様 ご回答ありがとうございます。 全くもってご指摘の通りです。やりたいことは具体的に描いたつもりですが、足りない部分は皆さまのご指摘により学習できました。自分でやったことや試したこと、エラー内容は残すように取り組ませて頂きます。わけもわからず色々なページを読み漁り適当に丸一日以上いじっていて途方に暮れて、こちらに甘えてしまいました。 皆様のお時間やお知恵をお借りしたこと無駄にしないよう取り組みさせて頂きます。 BeatStar様のお時間頂いたことにも感謝いたします。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。