0379NAME IS NULL2017/07/23(日) 23:40:56.92ID:??? 営業日の話ししてんじゃないのか 0380NAME IS NULL2017/07/24(月) 00:34:13.18ID:??? 複数の同一形式のcsvからデータを読み取る時、普通は↓こんな風に定義するけど、
SELECT tableA.名前,AVG(tableA.国語)AS 国語平均,AVGtableA.英語)AS 英語平均 FROM tableA,tableB WHERE tableA.日付 >= tableB.採点開始日 AND tableA.名前,tableB.名前 0382NAME IS NULL2017/07/26(水) 22:18:02.28ID:???>>381 tableA は 日付、名前、国語、英語 です。 0383NAME IS NULL2017/07/26(水) 22:38:14.43ID:???>>381
SELECT tableA.名前,AVG(tableA.国語)AS 国語平均,AVG(tableA.英語)AS 英語平均 FROM tableB inner join tableA on tableA.日付 >= tableB.採点開始日 AND tableA.名前=tableB.名前 group by tableA.名前 でいいんじゃないかな 0384NAME IS NULL2017/07/26(水) 22:55:56.85ID:???>>383 ありがとうございます join したほうがいいのかな これを参考にしてやってみます。 0385NAME IS NULL2017/07/27(木) 11:16:31.96ID:???>>384 データ量はたぶんたかだか数万レコード程度だろうから、どんなやり方でもパフォーマンス的には気にする必要ないと思うよ 0386NAME IS NULL2017/07/27(木) 21:34:59.28ID:???>>383 横からだが、fromとwhereで結合しても、joinで結合しても 書き方が違うだけで同じだぞ
パフォーマンス気にするなら、使ってるDBMSの実行計画読めるようにならないと 事前に結合した実データ(のテーブルやビュー)用意するんじゃなければ SQLの書き方では差がでないのが原則 0387NAME IS NULL2017/07/27(木) 22:17:49.93ID:Wb6w4MLZ じじいが嘘を広めていることもあるから混乱するんだよな。 0388NAME IS NULL2017/07/27(木) 22:31:45.92ID:??? tableAのデータがあった場合、tableBの結果と、tableCのビューが欲しいです。 tableAの補習が入った場合は学校にいくまでの間はすべて補習の時間になります。 まったく書き方が見当がつかないのでアドバイスお願いします
このとき、subQuery2内のwhere句には、2017/08/04~2017/08/05のフィルタがかかった状態で検索されるのですか? それともフィルタがかからない状態で検索され、2000/01/01~2017/08/05までの全レコードが検索され、 その上で内部結合の結合条件のレコードが抽出されるのですか? 0471NAME IS NULL2017/08/05(土) 11:48:15.87ID:??? 概念的には各サブクエリは独立して実行されると考えてよいが、 それをjoinした結果からは区別がつかん場合もある。 もちろん実際の実行順序は別の話。 0472NAME IS NULL2017/08/05(土) 14:00:31.63ID:MeRXBAvD>>470 同じSELECT文の中で同じテーブルを検索したら、それはそれで結果のビューができるという考え方でよい。
RDBMSによって内部の実装は異なるし、データの統計情報によっても処理方法は異なる。 0473NAME IS NULL2017/08/05(土) 14:05:36.05ID:MeRXBAvD>>470 内部結合だから結合条件によっては、同じ結果になるか、初心者にありがちな検索結果からSQLが正しいかどうかを確認してるのか? 0474NAME IS NULL2017/08/06(日) 11:03:43.07ID:??? 日本語下手な奴は迷惑 0475NAME IS NULL2017/08/06(日) 11:09:38.00ID:??? 外国人に日本語を下手なのを納得です 0476NAME IS NULL2017/08/10(木) 17:31:03.03ID:??? SQL初心者のスレが無いorz mysqlですがちょっと教えて下さい table nulltest id int primary key, price1 int not null, a__price1 int default null というテーブルで