MySQL 今日明日のデータのみ取得したい

実現したいこと

最近MySQLの勉強を始めた初心者です。
下記条件で②のデータを抽出したいのですがうまくいきません。

データ抽出条件
①2つのテーブルから「address_no」が一致しているデータのみ抽出
②今日明日のデータのみ抽出

試したこと

mysql

SELECT * FROM item_masters where address_no in (select address_no from address_masters);

上記のSQLで、①の2つのテーブルから「address_no」が一致するデータを抽出できました。

①で抽出したデータたちです

+----+------------+---------------------+------------+---------------------+---------------------+ | id | address_no | time | speed | created | modified | +----+------------+---------------------+------------+---------------------+---------------------+ | 1 | 011001 | 2022-10-25 00:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 2 | 011001 | 2022-10-25 01:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 3 | 011001 | 2022-10-25 02:00:00 | 4 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 4 | 011001 | 2022-10-25 03:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 5 | 011001 | 2022-10-25 04:00:00 | 4 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 6 | 011001 | 2022-10-25 05:00:00 | 2 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 7 | 011001 | 2022-10-25 06:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 8 | 011001 | 2022-10-26 00:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 9 | 011001 | 2022-10-26 01:00:00 | 3 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 10 | 011001 | 2022-10-26 02:00:00 | 4 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 11 | 011001 | 2022-10-26 03:00:00 | 4 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 12 | 011001 | 2022-10-26 04:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 13 | 011001 | 2022-10-26 05:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 14 | 011001 | 2022-10-26 06:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 15 | 011001 | 2022-10-27 00:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 16 | 011001 | 2022-10-27 01:00:00 | 6 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 17 | 011001 | 2022-10-27 02:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 18 | 011001 | 2022-10-27 03:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 19 | 011001 | 2022-10-25 04:00:00 | 4 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | | 20 | 011001 | 2022-10-25 05:00:00 | 5 | 2022-10-25 11:45:15 | 2022-10-25 11:45:15 | ~~~ +----+------------+---------------------+------------+---------------------+---------------------+

ここからさらに「time」が今日明日のデータで絞ってデータを抽出したいのですがうまくいきません。
有識者の方、教えてくださると助かります。(>_<)
よろしくお願いいたします。

補足

ネットで調べてみて書いてみたのですが、エラーが出ちゃいました。

ERROR 1317 (70100): Query execution was interrupted MariaDB [sql]> SELECT * FROM item_masters where address_no between (curdate() = date(time)) and (datediff(time, curdate()) = 1) in (select address_no from address_masters); Empty set, 7 warnings (0.08 sec)

テーブルの定義です

MariaDB [sql]> desc item_masters; +----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------------+------------------+------+-----+---------+----------------+ | id | int(10) unsigned | NO | PRI | NULL | auto_increment | | address_no | char(6) | NO | MUL | NULL | | | time | datetime | NO | MUL | NULL | | | speed | varchar(16) | YES | | NULL | | | created | datetime | YES | | NULL | | | modified | datetime | YES | | NULL | | +----------------+------------------+------+-----+---------+----------------+

コメントを投稿

0 コメント