SQL文の結合について。
現在会議室を予約するようなシステムを練習で作っているのですが、
SQL文を書くのが久しぶりでうまくいかず、困っています。
会議室の予約情報を記録しているschedule_t、時間を管理しているtime_tを結合させてどの時間が予約されているかを取り出したいと考えています。
■schedule_T
sid | stime | etime
1 | 2 | 4
2 | 5 | 6
■time_t
time_id | time
1 | 8:00
2 | 9:00
3 |10:00
4 | 11:00(以下略)
schedule_tのsidは予約番号のようなもので主キーとして登録しています。
stimeは開始時間、etimeは終了時間で、stimeが2、etimeが4ならば8:00~11:00という感じです。
これをSQL文で仮にsid=1の予約時間を取り出したい場合、2,4ではなく8:00、11:00といった風に取り出したいのですが、どのようにSQL文を書けばよいのでしょうか?
二回に分けるのではなく一回のselect文で取り出したいと考えています。
どなたか教えていただけませんか?
VisualStudio2005でaccessにつないでやってます。
No.1ベストアンサー
- 回答日時:
それぞれの開始時間と、終了時間を個別に
結合します。
SELECT A.sid,
A.stime,B.time, ★開始時間のペア
A.etime,C.time ★終了時間のペア
FROM
(schedule_t A INNER JOIN time_t B
ON A.stime=B.time_id)
INNER JOIN time_t C ON
A.etime=C.time_id
これは一般的なSQLなので、DBシステムに
よってはASというキーワードが必要であったり、
結合句が異なる場合があります。こういう質問
ではDBシステム、バージョンを記載するのが
丁寧というものです。
なるほどー!
個別に結合させる。勉強になります。
DBシステムがちょっとわからなかったのでACCESSにつなげてると書いてみたんですがやっぱわかりませんよね^^;
すいませんでした。
しかし回答のおかげで無事うまくいくことができました。
ありがとうございました。
No.2
- 回答日時:
VisualStudio2005については不明ですが
Access2002上では下記のSQLで求められました。あんまりぱっとしないけど。。
SELECT schedule_T.sid, schedule_T.stime,
(select time from time_t where time_id=schedule_T.stime) AS stimeA,
schedule_T.etime,
(select time from time_t where time_id=schedule_T.etime) AS etimeA
FROM schedule_T
WHERE schedule_T.sid=1
ご返答ありがとうございます。
SQL文っていろんな書き方があって難しいです><
参考にさせていただきます。ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
SQLサーバから、項目の属性(型...
-
エクセルの関数について教えて...
-
DB設計について
-
カンマ区切りの文字列を検索する
-
WHERE id = ? について
-
マイクラPC版のコマンドで効率...
-
副問合せの書き方について
-
sqlで、600行あるテーブルを100...
-
LEFT JOIN と GROUP BY
-
グループ毎にある列の最大値の...
-
エラー 1068 (42000): 複数の主...
-
accessのチェックボックスをSQL...
-
Mysqlでunionを使った検索速度...
-
複数テーブルのGROUP BY の使い...
-
SELECT文で片方のテーブルを優...
-
MySQLで半角濁音文字の検索
-
ストアドのエラーについて
-
SQLにて特定の文字を除いた検索...
-
Unionした最後にGROUP BYを追加...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで最後の文字だけ置き...
-
エクセルの関数について教えて...
-
VIEWの元のテーブルのindexって...
-
副問合せの書き方について
-
select文のwhere句に配列を入れ...
-
マイクラPC版のコマンドで効率...
-
SQLサーバから、項目の属性(型...
-
エラー 1068 (42000): 複数の主...
-
[MySQL] 3つのテーブルの結合で...
-
Access パラメータクエリをcsv...
-
SQLにて特定の文字を除いた検索...
-
SQL Left Join で重複を排除す...
-
ストアドのエラーについて
-
Unionした最後にGROUP BYを追加...
-
バインド変数について
-
PL/SQLの変数について
-
sqlで、600行あるテーブルを100...
-
WordpressのContact form 7でzi...
-
selectした大量データをinsert...
-
inner joinをすると数がおかし...
おすすめ情報