• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:データ取得に関して)

データ取得に関するSQLについて

このQ&Aのポイント
  • 指定した利用者IDに関連するテーブル2のタイトルと、テーブル3の該当案件IDの数、該当案件IDが1の場合のファイル名を取得するためのSQLがうまくかけません。
  • 質問者は、MySQL 5.0.41を使用しており、テーブル1の利用者IDを指定して、テーブル2のタイトルと、テーブル3の該当案件IDの数、該当案件IDが1の場合のファイル名を取得したいが、SQLがうまく実行できない。
  • 指定した利用者IDに関連するテーブル2のタイトルと、テーブル3の該当案件IDの数、該当案件IDが1の場合のファイル名を取得するためのSQL文を作成しているが、うまく動作しない。MySQLのバージョンは5.0.41である。

質問者が選んだベストアンサー

  • ベストアンサー
  • SUPER-NEO
  • ベストアンサー率38% (706/1857)
回答No.1

こんにちは。 1回のSQLで取得ができないのなら、複数に分けてみればいいです。 また、ただ単にサーバとのラウンドトリップの回数を減らすだけ、 という理由なのであれば、ストアドプロシージャなどを利用されると いいですね。私ならストアドを使用します。 ■ 1回目のクエリ SELECT T1.案件ID, COUNT(T1.案件ID) AS 件数 FROM TABLE1 T1, TABLE2 T2 WHERE T1.案件ID = T2.案件ID AND T1.利用者ID = '?????' GROUP BY T1.案件ID; ■ 2回目のクエリ SELECT T3.ファイル名 FROM TABLE3 T3 WHERE T3.案件ID = '取得した案件ID'; 以上ではダメでしょうか? 複数のレコードが返されるのであれば、メモリテーブルなどを 活用されることもお奨めします。

rabaraba
質問者

お礼

なるほど! やっぱり1つじゃ無理なんですかねー。。 ストアドを使用してみます! ありがとうございました!