はじめまして、よろしくお願いします。
職場環境がかわり、はじめてmySQLを使用しています。
3つのテーブルから情報を検索したいのです。
[テーブル名: cast]
name // PRIMARY KEY
age
(例
なまえ1, 22
なまえ2, 28
なまえ3, 25
[テーブル名: photo]
name
order // 写真表示順 (INT)
url // 写真格納先URL
(例
なまえ1, 0, http://なまえ1A.jpg
なまえ1, 1, http://なまえ1B.jpg
なまえ1, 2, http://なまえ1C.jpg
なまえ3, 0, http://なまえ3A.jpg
[テーブル名: schedule]
name
workday // 出勤日 (DATE)
starttime // 出勤時間(TIME)
finishtime // 退勤時間(TIME)
(例
なまえ3, 2013-02-04, 9:00, 17:00
なまえ2, 2013-02-05, 10:00, 18:00
なまえ2, 2013-02-06, 10:00, 18:00
なまえ2, 2013-02-07, 10:00, 18:00
キャスト情報(cast)とそのキャストの写真格納先URL(photo)とキャストの出勤時間(schedule)のテーブルです。
※キャストは何枚でも写真を登録できます。登録していない場合もあります。
キャストのリストを表示したいです。
表示したい項目は
cast.name, cast.age, photo.url, schedule.starttime, schedule.finishtime
になります。
期待する結果は(2月5日の場合)
なまえ1, 22, なまえ1A.jpg, NULL, NULL
なまえ2, 28, NULL, 10:00, 18:00
なまえ3, 25, なまえ3A.jpg, NULL, NULL
すべてのキャストを表示します。
photo.urlはphoto.order=0のもの(photo.order=0の写真をサムネイル表示に使っています)
2月5日に出勤情報があれば表示
いろいろ考えたのですが、どうしても photo にデータがない("なまえ2")のところでつまづいてしまって、どうにも。。。
とりあえずPHPでそれぞれのテーブルの情報を取得して
自分で UNION、 USING('name') みたいな処理してますが、ソースがとっても恰好悪いです。
ズバッとしびれるSQL文をどうかご教示していただきたく、投稿しました。
よろしくお願いいたします><
No.1ベストアンサー
- 回答日時:
こんな感じですか?
select cast.name,cast.age,photo.url,schedule.starttime,schedule.finishtime
from cast
left join photo on cast.name=photo.name and photo.order=0
left join schedule on cast.name=schedule.name and schedule.workdate='2013-02-05'
なお、カラムにcastやorderといった予約語をいれると思わぬ落とし穴があったりするので
気をつけてください
素晴らしいです!
ありがとうございます。
教えていただいたSQL文に使われている命令をよく調べて勉強して
わたしも、サラッ!と書けるようになりたいです。エクセレント!!!
また、予約語の件了解しました。
こちらもほかにどのような予約語があるか勉強してカラム名を変更します。
本当にありがとうございます^^
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- Perl 画像が表示でnull; this.src 1 2022/04/19 11:31
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- MySQL MySQLのテーブル作成で 自信がありません。 2 2022/08/28 05:35
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
- SQL Server SQL Oracle serverにって質問です。 会社テーブルがあり、そのテーブルから 社員名、給 4 2022/05/21 12:22
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- YouTube youtubeは画面と操作パネルが別々に表示されていたのに画面上にかぶるように表示されるようになった 1 2022/05/08 10:04
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルリンク リンク元を知...
-
男性と2人で飲食店に行きテーブ...
-
面接のときテーブルが正面に。...
-
「テーブルに座って……」という...
-
ACCESSで3ファイルを結合して、...
-
Accessのリンクテーブルマネー...
-
外部キーだけのテーブル(主キ...
-
論理名とコメント構文(?)について
-
特定物と不代替物の違い
-
L2SWはARPテーブルを持っている?
-
UTF8のテーブルをODBCドライバ...
-
飲み会で、座敷orテーブルどち...
-
お金持ちのテーブル
-
1対1のリレーション(主キー同...
-
アクセスのリンクテーブル一覧...
-
オーダーの覚え方について
-
テーブルデータのエクスポート...
-
クエリを教えてください select...
-
会社の飲み会の幹事になり、座...
-
複雑なSQL文について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
外部キーだけのテーブル(主キ...
-
飲み会で、座敷orテーブルどち...
-
アクセスのリンクテーブル一覧...
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
「テーブルに座って……」という...
-
複雑なSQL文について
-
まるいテーブル 円い 丸い 漢字...
-
お金持ちのテーブル
-
【PHP】SQL文のSUM関数で出力し...
-
論理名とコメント構文(?)について
-
1つのテーブルに同じデータを参...
-
1対1のリレーション(主キー同...
-
MySQLで複数テーブルを作成する
-
テーブルの白く剥がれてるところに
-
オーダーの覚え方について
-
このテーブルで
おすすめ情報