0

Kohana で異なるデータベースのテーブルを結合する方法は?

$tb_new = 'db_zaboo_feed.feed_' . $feed;
            $ids = DB::query(Database::SELECT, 
                             "SELECT d.fuid_id, d.user_id FROM db_zaboo.displays d
                             LEFT JOIN $tb_new f ON(d.fuid_id = f.uid)
                             WHERE d.user_id = (SELECT user_id FROM $tb_new GROUP BY user_id) AND f.uid IS NULL")->execute();

エラー:

Database_Exception [ 1146 ]: Table 'db_zaboo.displays' doesn't exist [ SELECT d.fuid_id, d.user_id FROM db_zaboo.displays d LEFT JOIN db_zaboo_feed.feed_3 f ON(d.fuid_id = f.uid) WHERE d.user_id = (SELECT user_id FROM db_zaboo_feed.feed_3 GROUP BY user_id) AND f.uid IS NULL ]
4

2 に答える 2

0

これは Kohana 固有の質問ではありません。MySQLの質問です。

同じクエリで複数のデータベースを操作するには、テーブル名とそのデータベース名を使用する必要があります。そのような:

SELECT * FROM database1.table1 WHERE database1.table1.id IN (SELECT table1_id FROM database2.table2)

注意してください: 文字通りクエリを書くことによって、クエリ ビルダーの特定の関数を使用して SQL クエリを構築する場合と同様に、Kohana のクエリ ビルダーが SQL インジェクション攻撃を防ぐかどうかはわかりません。関数mysql_real_escape_stringを使用してそれを防ぎます

于 2014-09-01T22:33:48.947 に答える