table2 が存在しないため、このクエリはエラーを生成します。
Select * FROM table WHERE table2.id IS NOT NULL
IDにチェックを適用する前に、table2をチェックするためにこのようなものはありますか?
Select * FROM table WHERE (EXIST(table2) AND table2.id IS NOT NULL) or not EXIST(table2)
このシステム テーブルを照会する必要があります。
SELECT table_name
FROM information_schema.tables
WHERE table_schema = 'yourdatabasename'
AND table_name = 'table2';
行が返された場合、テーブルは存在します。
これを行うためのコマンドや関数が標準 SQL にあるとは思いません。次のように、SQL クエリを発行する前に、データ ディクショナリをクエリして、テーブルが存在するかどうかを確認できます。
SELECT table_name FROM INFORMATION_SCHEMA.tables WHERE table_name = 'xxx';
ただし、単一の SQL ステートメントで実行できるとは思いません。