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

SQLでのクロス結合と内部結合

    これがクロスジョインとインナージョインの最良の例です。

    次の表を検討してください

    表:Teacher

    x------------------------x
    | TchrId   | TeacherName | 
    x----------|-------------x
    |    T1    |    Mary     |
    |    T2    |    Jim      |
    x------------------------x
    

    表:Student

    x--------------------------------------x
    |  StudId  |    TchrId   | StudentName | 
    x----------|-------------|-------------x            
    |    S1    |     T1      |    Vineeth  |
    |    S2    |     T1      |    Unni     |
    x--------------------------------------x
    

    1。内部結合

    内部結合は、両方のテーブルを満たす行を選択します

    クラスの教師である教師とそれに対応する生徒を見つける必要があると考えてください。その状態で、JOINを適用する必要があります またはINNER JOIN

    クエリ

    SELECT T.TchrId,T.TeacherName,S.StudentName 
    FROM #Teacher T
    INNER JOIN #Student S ON T.TchrId = S.TchrId
    
    • SQLフィドル

    結果

    x--------------------------------------x
    |  TchrId  | TeacherName | StudentName | 
    x----------|-------------|-------------x            
    |    T1    |     Mary    |    Vineeth  |
    |    T1    |     Mary    |    Unni     |
    x--------------------------------------x
    

    2。クロスジョイン

    クロス結合は、最初のテーブルからすべての行を選択し、2番目のテーブルからすべての行を選択して、デカルト積として表示します。つまり、すべての可能性があります

    クラスの教師に関係なく、学校のすべての教師と生徒を見つける必要があることを考慮して、CROSS JOINを適用する必要があります。 。

    クエリ

    SELECT T.TchrId,T.TeacherName,S.StudentName 
    FROM #Teacher T
    CROSS JOIN #Student S 
    
    • SQLフィドル

    結果

    x--------------------------------------x
    |  TchrId  | TeacherName | StudentName | 
    x----------|-------------|-------------x            
    |    T2    |     Jim     |    Vineeth  |
    |    T2    |     Jim     |    Unni     |
    |    T1    |     Mary    |    Vineeth  |
    |    T1    |     Mary    |    Unni     |
    x--------------------------------------x
    


    1. Oracle INとExistsの違いは?

    2. setFetchSize()をいつ何を指定する必要がありますか?

    3. Oracle(Old?)Joins-変換用のツール/スクリプト?

    4. Heroku Postgres:接続が多すぎます。これらの接続を切断するにはどうすればよいですか?