
くそみたいな質問をします。
書籍の内容はまともでしょうか?
phpMyadmin
これは「phpMyAdmin」~の「MySQ」L関連の質問です。
mysql> select * from my_items;
+----+----------+--------------+-------+----------------------+-------+---------------------+
| id | maker_id | item_name | price | keyword | sales | created |
+----+----------+--------------+-------+----------------------+-------+---------------------+
| 1 | 1 | いちご | 180 | 赤い,甘い,ケーキ | 5 | 2018-01-01 00:00:00 |
| 2 | 2 | りんご | 90 | 丸い,赤い,パイ | 20 | 2023-01-11 06:57:21 |
| 3 | 1 | バナナ | 120 | パック,甘い,黄色 | 16 | 0000-00-00 00:00:00 |
| 4 | 3 | ブルーベリー | 200 | 袋入り,青い,眼精疲労 | 8 | 0000-00-00 00:00:00 |
+----+----------+--------------+-------+----------------------+-------+---------------------+
4 rows in set (0.01 sec)
以上ですが
分かりにくいで、上記と同じ「添付画像」で問題の表の確認ができます。
さて
書籍P.179「よくわかるPHP教科書()PHP第7対応版」
3)複数のテーブルを横断して検索する
ではこの状態で「いちご生産者」を知るにはどうした良いのでしょう?
このとき、通常の手順にしてとしては次のようになります。
❶次のSQLを発行して商品1の情報を取り出します。
(「phpMyAdmin」の「SQL」に以下を入力しましす。)
SELECT maker_id FROM my_items WHERE id=1
❷このデータ「maker_id」を見て、1であることを知ります。
❸次SQLを発行して、生産の情報を検索します。
(P.180)
SELECT * FROM makers Where id=1;
❹こうして山田さんであることを知ることができます。(図4-18-7)。
id name address tel
1 山田さん 東京都港区 000-111-2222
(図4-18-7)
しかし、これは非常に効率が悪いです。そこで、データベースは非常に便利な機能があります。
それがリレーションです。
リレーションを使う ・・・
❺まずは実際に使ってみましょう。次のSQLを実行します。
SELECT * FROM makers, my_items WHERE my_items.id=1 and makers.id=my_items.maker_id
❻ 以上の、少し長いSQLを実行すると、一発で生産者の名前や住所、電話番号が商品情報とともに閲覧できます。
-------------------------------------------------------------------------------------------------------
(カラム省略)
山田さん 東京都港区 000-111-2222 1 1 いちご 180 赤い,甘い,ケーキ 5 2018-01-01 00:00:00
図4-18-8
以上までの書籍の内容です。
書籍の内容は以上ですが
さて それで 疑問があります。
❷の「このデータ「maker_id」を見て、1であることを知ります。」
ですが!
「maker_id」が「1」であるか無いかがわからなくても
最初から
SELECT * FROM makers Where id=1
と検索したほうが 手っ取り早いのですが
何故 それをしないのですか?
よろしくお願いいたします。




回答2件
あなたの回答
tips
プレビュー