sql >> データベース >  >> RDS >> Mysql

異なるデータベースの複数のテーブルを接続しますか? MySql

    両方のデータベースに同じアクセス権を持つ単一のMySQLユーザーを定義することをお勧めします。このようなもの:

    GRANT ALL ON siteinfo.* TO [email protected] IDENTIFIED BY 'password';
    GRANT ALL ON sitedescriptions.* TO [email protected] IDENTIFIED BY 'password';
    FLUSH PRIVILEGES;
    

    そのユーザーとして接続を確立すると、両方のデータベースにアクセスできるようになり、テーブル名の前にデータベース名を付けることで、それらを簡単に参照できます。

    SELECT * FROM siteinfo.sites;
    

    この方法で、データベース間でテーブルを問題なく結合することもできます。したがって、2番目の質問に答えるために、サイトの3つの説明行すべてを取得するには、これを行うことができます(サイトが各データベースで同じID、同じ名前、または参加できる一意の何かを持っていると仮定します):

    SELECT * FROM
        siteinfo.sites AS s LEFT JOIN 
        sitedescriptions.description AS d ON s.siteId=d.siteId
    WHERE s.siteId=123;
    


    1. SELECT * FROM MySQL Linked Server using SQL Server without OpenQuery

    2. テーブルの列の順序について心配する理由はありますか?

    3. テーブル値パラメータをC#からOracleストアドプロシージャに渡す方法

    4. パフォーマンスの神話:クラスター化インデックスと非クラスター化インデックス