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

多対多の関係におけるクエリの例

    私が最初にすることは、 Linq-To-Sql のような ORM を使用することをお勧めします または NHibernate これにより、データ モデルのオブジェクト表現が得られ、多対多の CRUD 操作などの複雑な処理がはるかに簡単になります。

    ORM がツール セットの一部ではない場合、これが SOL でどのように見えるかを次に示します。

    Users       UserAddresses     Addresses
    =======     =============     =========
    Id          Id                Id
    FirstName   UserId            City
    LastName    AddressId         State
                                  Zip
    

    テーブルは次のように結合されます:

       Users.Id -> UserAddresses.UserId
       Addresses.Id -> UserAddresses.AddressId
    
    • Addresses.Id に基づくユーザーのすべてのレコード
    SELECT        Users.*
    FROM            Addresses INNER JOIN
                             UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                             Users ON UserAddresses.UserId = Users.Id
    WHERE        (Addresses.Id = @AddressId)
    
    • Users.Id に基づく Addresses のすべてのレコード
    SELECT        Addresses.*
    FROM            Addresses INNER JOIN
                             UserAddresses ON Addresses.Id = UserAddresses.AddressId INNER JOIN
                             Users ON UserAddresses.UserId = Users.Id
    WHERE        (Users.Id = @UserId)
    


    1. 複数列ピボット SQL Server

    2. ユーザーのJavaJDBCアクセスが拒否されました

    3. Oracle:最近のSQL構文エラーを取得する方法はありますか?

    4. PySide2にQMYSQLドライバーをロードできません