
お世話になります。
ネットショップでの送料の計算を行いたいのですが、どのようなSQL文が適切なのか、アドバイスを頂戴したく質問させて頂きます。
以下のようなテーブルがあり、都道府県、サイズ、送料が登録されています。
no addr size price
1 大阪府 140 630
2 大阪府 160 840
3 福岡県 140 735
商品毎に商品サイズ、および発送先(都道府県別)によって、送料を抽出したいと考えているのですが、
1.同じ都道府県の登録、かつ不注意により同じサイズが登録されている。
・・・この場合は、LIMIT 1として抽出。
2.該当するサイズが登録されていなかった。
・・・この場合は、同じ都道府県から一番大きな金額を抽出。
3.該当する都道府県が登録されていなかった。
・・・この場合は全てから一番大きな金額を抽出。
と、考えられる想定を事前に施しておきたいのですが、この場合どのようなSQL文になるのでしょうか?
PHPで制作しているのですが、1つのSQL文が思いつかずTRUEとFALSEで処理する形になってしまい、該当する都道府県がなかった場合は、結果、3度もDBに問い合わせてしまう形になっています。
お忙しいなか恐縮ですが、アドバイスなど頂戴出来れば幸いです。
申し遅れましたが、DBはMySQLの5を利用しています。
宜しくお願い致します。
No.1ベストアンサー
- 回答日時:
複雑なクエリを書けばなんとかなりはしますが、内部で色々やろうとすると混乱するだけになるかと思います。
ストアドプロシージャという機能がありますので、PHPでやるのがいやであれば、そちらで行うことをおすすめします。
pa_cotta様
こんにちは。ご親切な回答をありがとうございます。
条件によりSQLを変えるんですものね。投稿した後、変な質問してしまったと思っていたところでした。
とは言え、貴重なアドバイスを頂戴し感謝しています。
気持ちが晴れました。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【SQL】項目に紐づいている情報...
-
SQLでレコード間の値の交換
-
SELECT INTOで一度に複数の変数...
-
UPDATEの更新前の値を取得したい
-
sennaの全文検索のクエリについて
-
Accessエクスポート時に連番を...
-
フラグをたてるってどういうこ...
-
SQLサーバに対するSQL文で抽出...
-
オラクルのUPDATEで複数テーブル
-
DB2でテーブルのサイズを見たい
-
複数レコードの複数フィールド...
-
既存データをINSERT文にして出...
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
Access にて "mm:ss.0" 形式の ...
-
親子に分けた方が良い? テー...
-
sqlに記述できない文字
-
エラーを起こす方法
-
SQLで一定時間周期毎の抽出方法...
-
Accessで今日から5日後
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
limit offset はupdate文には使...
-
1つのSQLで2段階の抽出を行い...
-
【SQL】項目に紐づいている情報...
-
SQLで、過去で一番大きい日付の...
-
AccessVBAについて テーブルの...
-
こちらのテーブルにあってこち...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
UPDATEで既存のレコードに文字...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
-
既存データをINSERT文にして出...
-
エラーを起こす方法
-
SQLで、Join句で結合したテ...
-
Accessの構成をコピーしたい
-
SQLサーバに対するSQL文で抽出...
-
UPDATEの更新前の値を取得したい
おすすめ情報