実現したいこと
最近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 コメント