No tables used
出典: MySQL Practice Wiki
エラー概要
| MySQLエラー番号 | 1096 |
| SQLSTATE | HY000 |
| エラー名 | ER_NO_TABLES_USED |
| メッセージ | No tables used |
| 障害部位 | mysqld |
| 該当バージョン | any |
| エラーの原因 | テーブルが指定されていない。 |
| 対策 | 以下を参照。 |
| 備考 | nada |
目次 |
原因
MySQLでは、テーブルからレコードをフェッチしないクエリにおいてもDUALテーブルが必要ない。例えば次のような例である。
mysql> SELECT 1 + 1;
+-------+
| 1 + 1 |
+-------+
| 2 |
+-------+
1 row in set (0.00 sec)
mysql> SELECT UPPER('mysql is a free software.') AS Str;
+---------------------------+
| Str |
+---------------------------+
| MYSQL IS A FREE SOFTWARE. |
+---------------------------+
1 row in set (0.00 sec)
従って、文法的にはFROM句のないSELECTは不正ではない。しかしながら、FROM句の指定がないと成立しないクエリがある。例えば次のような場合である。
mysql> SELECT *; ERROR 1096 (HY000): No tables used
対策
MySQLにはDUALテーブルは必要ないが、きちんと正しいSQL文を書くようにしよう。

