- ベストアンサー
※ 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である。
- みんなの回答 (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'; 以上ではダメでしょうか? 複数のレコードが返されるのであれば、メモリテーブルなどを 活用されることもお奨めします。
お礼
なるほど! やっぱり1つじゃ無理なんですかねー。。 ストアドを使用してみます! ありがとうございました!