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

複数のデータベースにまたがる結合を含むクエリ - 構文エラー

    ユーザーが権限を持っている場合は、他のデータベースを直接参照できます。

    <database>.<user>.<tablename>
    

    データベース テーブルへの完全な「パス」です。

    よく使う

    db1.dbo.tbl1 join db2.dbo.tbl2
    

    ここで、dbo はデータベース所有者のデフォルトです。特定のユーザーが所有していないテーブルは、デフォルトで dbo によって所有されます。

    UPDATE

    検証するクエリを取得するには、これに展開できます

    SELECT * FROM 
    (SELECT a.concession as db1_CON_NUMBER FROM db1.dbo.concessions as a  
    UNION 
    SELECT b.[Concession Number] as db1_CON_NUMBER FROM db1.dbo.invoicing as b ) c
    
    INNER JOIN 
    
    (SELECT c.concession as db2_CON_NUMBER FROM db2.dbo.concessions as a 
    UNION 
    SELECT b.[Concession Number] as db2_CON_NUMBER FROM db2.dbo.invoicing as b ) d
    
    ON db1_CON_NUMBER = db2_CON_NUMBER 
    

    しかし、これが正しいデータを返すかどうかを確認する時間がありませんでしたが、テストできます.



    1. 増分番号に静的プレフィックスを追加する

    2. SQL'AT TIME ZONE'、クエリ全体、'SELECT'すべての列(テーブル名。*)式

    3. 複数列の比較のためのインデックススキャン-不均一なインデックス列の順序

    4. INSERT ... SELECT、InnoDBおよびロック