2017-05-15 12 views
0

別のテーブルの特定の行の値に基づいて、どのテーブルを検索するかを動的に選択したいと思っています。動的にどのテーブルを選択するか

私はこのクエリを持っている:

SELECT d.name 

FROM `database1`.domains AS d 
WHERE (SELECT COUNT(u.id) FROM <<d.db_name>>.users u) > 0 

は、私は、データベース名としてd.db_nameの値を使用します。 例:d.db_name =データベース2

私はこれをしたい:

SELECT d.name 

FROM `database1`.domains AS d 
WHERE (SELECT COUNT(u.id) FROM `database2`.users u) > 0 
+0

これは本当に悪いデータアーキテクチャのようです。 –

+0

このクエリは統計情報のために私だけが使用します。 –

+0

見よ[here](http://stackoverflow.com/questions/4165020/what-is-dynamic-sql) – JohnHC

答えて

0

あなたはこのために、変数を使用することができます。

SET @table_name = "some_table"; 

SELECT * FROM @table_name; 

あなたがの結果に応じて、変数の値を変更したい場合あなたの選択は次のようになります:

IF(some_column>50, @table_name := "value for true", @table_name := "value for false"); 
関連する問題