私は約200のテーブルを持つデータベースを持っており、特定の列(creation_date)を含むすべてのテーブルに対してクエリを実行する必要がありますが、すべてのテーブルにその列があるわけではありません。 SELECT * FROM * WHERE creation_date>=42
は明らかに機能しませんが、それを実行する最善の方法は何でしょうか?(私)SQL:FROM句のワイルドカード?
答えて
あなたがそうのように照会したいテーブルを含めるように試みることができます。
SELECT * FROM table1 a, table2 b WHERE a.creation_date>=42
あなたがからにワイルドカードを使用することはできません。上記のようにwhere句をどのテーブルに適用するかを指定することができます。列を持たないものは除外することができます。
例のクエリでは、table1(別名a)には列があり、table2(別名b)には含まれません。
このステートメントは、結合条件が指定されていないため、これら2つのテーブルの間にデカルト積を作成するので、非常に危険です。適度なサイズのテーブルであっても、これは巨大な結果を生成します –
あなたは絶対に正しいです...しかし答えは質問です。しかし、良いコメントです! –
-1、あなたは組合が必要で、クロスジョインは必要ありません。 '' table1 union select f1 from table2 union select .... 'を選択してください。 – Johan
メタデータから動的SQLクエリを作成できます。私はこのようにアプローチします:
- は、テーブル、カラム
creation_date
- を持っている場合、それは、このテーブルにクエリを追加しない場合を参照してください
- 、各テーブルのテーブル
- のリストを取得します。動的なクエリ
- 連合ます。また、複数のテーブル上のビューを作成することができるかもしれない一緒に結果
。次に、ビューを照会するだけです。
のMySQLから直接コピーSELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE, COLUMN_DEFAULT, TABLE_NAME,
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'tbl_name'
[AND table_schema = 'db_name']
[AND column_name ='creation_date']
- あなたはこれらのシステムテーブルを通してループする必要があり、リストは、それらが含まれています...
、あなたはあなたのSQLステートメントを構築し、それらが動作することを確認することができます...
- 1. SQL:FROM句を省略する
- 2. 番号句のワイルドカード
- 3. In()とワイルドカードを使用するSQL Serverのwhere句
- 4. where句でワイルドカードを使用する方法は?
- 5. 私は次のような句が句
- 6. WHERE句で使用できるワイルドカード演算子はありますか?
- 7. ワイルドカード
- 8. ワイルドカード
- 9. ワイルドカード*
- 10. ワイルドカードは、私は私の<code>.gitignore</code>に次き
- 11. Railsの - 私は、次の句き
- 12. ワイルドカードのMatchcase
- 13. ヘーゼルキャストサブスクリプションのワイルドカード
- 14. のOracle CHARLISTワイルドカード
- 15. Djangoのワイルドカード(Objects.filter)
- 16. DateTimeFormatterのワイルドカード
- 17. クラスのワイルドカード
- 18. www。ワイルドカードのリダイレクト
- 19. SQLのLIKEワイルドカード
- 20. ワイルドカードとのマージ
- 21. ワイルドカードの使用
- 22. サブクエリのワイルドカード
- 23. Pythonのワイルドカード?
- 24. のXPathワイルドカード
- 25. マルチレベルジェネリックタイプのJavaワイルドカード
- 26. バットファイルのワイルドカード
- 27. sedのワイルドカードが
- 28. dlookupのワイルドカード
- 29. if文のワイルドカード
- 30. getElementsByTagName(xml.dom.minidom)のワイルドカード
質問したいテーブルを明示的に含める必要があると思います... – Marco
達成しようとしているのは正確ですか?なぜその列を含むすべてのテーブルからすべての行(条件を満たす)が必要なのですか?それは非常に奇妙なことのように聞こえる –
可能重複:http://stackoverflow.com/questions/639531/mysql-search-in-all-fields-from-every-table-from-a-database – reggie