プロが教えるわが家の防犯対策術!

書籍の内容はまともでしょうか?
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
と検索したほうが 手っ取り早いのですが
何故 それをしないのですか?
よろしくお願いいたします。

「書籍の内容はまともでしょうか?」の質問画像

A 回答 (1件)

いちごの生産者を得るのですよね?


makers表のid=1の生産者は、何の生産者かこれだけでは分かりませんよね?
    • good
    • 1
この回答へのお礼

ありがとうございました。
お礼が遅れてすみませんでした。
助かります。
その通りだと思います

お礼日時:2023/01/26 16:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!