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

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

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

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

Q&A

解決済

1回答

4053閲覧

Mysql between と order by の組み合わせ

退会済みユーザー

退会済みユーザー

総合スコア0

MySQL

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

0グッド

0クリップ

投稿2018/11/09 08:46

Mysqlでデーベースから以下の情報を抽出しようとしています

between と order byの記述方法が誤っているのか、
記述方法のアドバイスなどをいただければと思います

顧客ID、名前、住所、商品名、価格=数量×価格 、数量、重さを抽出
条件
重さ30~50kgのものを表示
数量を昇順で表示、
住所1住所2をまとめる価格は価格と数量をかけた数を、価格として表示

抽出イメージ
顧客ID 名前 住所 商品名 価格 重さ 数量
2 bさん ~
3 cさん ~
1 aさん ~

作成中、考え中
Select 購入履歴.顧客ID,顧客情報.名前,concat(住所1,住所2) as 住所,商品情報.商品名,商品情報.価格*購入履歴.数量 as 価格,購入履歴.数量,商品情報.重さ from 購入履歴 inner join 顧客情報 on 購入履歴.顧客ID=顧客情報.顧客ID inner join 商品情報 on 購入履歴.商品ID=商品情報.商品ID where 重さ between “30kg” and “50kg” ORDER BY 数量 ASC;

実行結果、エラー
ERROR 1054 (42S22): Unknown column '30kg' in 'where clause'

途中の段階では、顧客ID、名前、住所、商品名、価格、重さ、数量の大まかな
項目は抽出できるのですが、betweenとorder byをうまくいかない状況です

+----------+---------+----------------------------+-----------+--------+--------+--------+
| 顧客ID | 名前 | 住所 | 商品名 | 価格 | 数量 | 重さ |
+----------+---------+----------------------------+-----------+--------+--------+--------+
| 5 | Eさん | 大阪府大阪市1-7-3 | iPhone7s | 10000 | 10 | 88kg |
| 2 | Bさん | 神奈川県横浜市2-3-5 | iPhone5s | 1400 | 2 | 46kg |
| 3 | Cさん | 山口県防府市1-2-3 | iPhone8 | 3600 | 3 | 34kg |
| 1 | Aさん | 東京都江東区1-1-1 | iPhone5s | 3500 | 5 | 46kg |
| 4 | Dさん | 埼玉県秩父市5-1-2 | iPhone6s | 280 | 8 | 22kg |
+----------+---------+----------------------------+-----------+--------+--------+--------+

作成済みデータ
+----------+----------+----------+--------+
| 購入ID | 顧客ID | 商品ID | 数量 |
+----------+----------+----------+--------+
| 1 | 3 | 9 | 3 |
| 2 | 1 | 4 | 5 |
| 3 | 5 | 8 | 10 |
| 4 | 2 | 4 | 2 |
| 5 | 4 | 6 | 8 |
+----------+----------+----------+--------+

+----------+---------+--------+--------+-----------+--------------+----------------+
| 顧客ID | 名前 | 年齢 | 性別 | メール | 住所1 | 住所2 |
+----------+---------+--------+--------+-----------+--------------+----------------+
| 1 | Aさん | 23 | 男性 | a@hri.com | 東京都 | 江東区1-1-1 |
| 2 | Bさん | 18 | 男性 | b@hri.com | 神奈川県 | 横浜市2-3-5 |
| 3 | Cさん | 47 | 女性 | c@hri.com | 山口県 | 防府市1-2-3 |
| 4 | Dさん | 13 | 女性 | d@hri.com | 埼玉県 | 秩父市5-1-2 |
| 5 | Eさん | 38 | 女性 | e@hri.com | 大阪府 | 大阪市1-7-3 |
+----------+---------+--------+--------+-----------+--------------+----------------+

+----------+-----------+----------+--------+
| 商品ID | 商品名 | 価格 | 重さ |
+----------+-----------+----------+--------+
| 1 | iPhone4 | 100円 | 11kg |
| 2 | iPhone4s | 300円 | 23kg |
| 3 | iPhone5 | 500円 | 12kg |
| 4 | iPhone5s | 700円 | 46kg |
| 5 | iPhone6 | 10円 | 95kg |
| 6 | iPhone6s | 35円 | 22kg |
| 7 | iPhone7 | 900円 | 54kg |
| 8 | iPhone7s | 1000円 | 88kg |
| 9 | iPhone8 | 1200円 | 34kg |
| 10 | iPhone8s | 500円 | 78kg |
| 11 | iPhoneX | 10000円 | 45kg |
+----------+-----------+----------+--------+

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

betweenの前に「and」が抜けてませんか?

ちなみにもし重さを文字列でもっているならやめたほうがいいですよ
数値型でもってください

投稿2018/11/09 08:49

yambejp

総合スコア117744

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2018/11/09 09:02

ご回答ありがとうございます betweenの前に「andとは between and “30kg” and “50kg” ORDER BY 数量 ASC; ということでしょうか または、and between “30kg” and “50kg” ORDER BY 数量 ASC;という形になるのでしょうか?
退会済みユーザー

退会済みユーザー

2018/11/09 09:04

重さはvarcharはやめた方がいいということですね! かしこまりました ありがとうございます
yambejp

2018/11/09 09:06

ごめんなさい、ちょっと見方をまちがえていました 「“30kg” and “50kg”」→「'30kg' and '50kg'」という感じで エンクロージャを調整してみてください
退会済みユーザー

退会済みユーザー

2018/11/09 09:17

yambejpさんありがとうございました うまく行きました ちなみに'30kg' and '50kg'の( '' )←このぶぶん自分でも試したりもしたのですが、 その時は、マックブックのメモ帳のアプリに下書きとして打ち込んだものをターミナルにコピぺしたのですが マックブックのメモ帳のアプリだと( '' )←このぶぶんが少し変換されてしまうのでしょうか
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問