質問: '2016/04/01') ) or ('23:00' > '05:00' and ( テーブルA.column-AA1 between '23:00' and '23:59' or テーブルA.column-AA1 between '00:00' and '05:00' ) ) ) 解り辛い文面で申し訳ありませんが、修正箇所、アドバイス等ご教授お願い致します。
回答: 質問文にあるように `FROM テーブルA, テーブルB` と書いてしまうと、テーブルAの全行とテーブルBの全行を掛けあわせたレコードの中から抽出する形になります。 テーブルAとBの関係性がよくわからないのですが、仮にテーブルAが従、テーブルBが主だとすると、 `FROM テーブルA RIGHT JOIN テーブルB ON テーブルA.column-A1 = テーブルB.column-B1` とすればテーブルBの全行に対してcolumn-B1に関係するテーブルAの行が結合されます。 テーブルの結合に関しては: 7.2. テーブル式 また、年月日や時刻をどのデータ型を使ってらっしゃるでしょうか。 日付はDATE型とTIMESTAMP型、時刻はTIME型というのがあり、TIMESTAMPとTIMEにはタイムゾーンありとなしのものがあります。 文字列型(VARCHAR(n)やTEXT)でやることもできますが、フィットするデータ型を使うとSQL実行の効率も良くなります。 8.5. 日付/時刻データ型