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

INNER JOIN を実行すると結果が重複する

    SELECT 
        a.id AS a_id, a.str1 AS a_str1, a.str2 AS a_str2, 
        b.id AS b_id, b.str1 AS b_str1, b.str2 AS b_str2
    FROM 
        ( SELECT *
               , ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
          FROM #A 
        ) a
      INNER JOIN 
        ( SELECT *
               , ROW_NUMBER() OVER (PARTITION BY str1, str2 ORDER BY id) AS rn
          FROM #B 
        ) b 
        ON  a.str1 = b.str1 
        AND a.str2 = b.str2 
        AND a.rn = b.rn ;
      

    同じ (str1, str2) に対して 1 つまたは他のテーブルに複数の行がある場合 INNER を変更することで、返されるものを選択できます LEFT のいずれかに参加 、 RIGHT または FULL 参加してください。



    1. PostgreSQLは、配列に左側の配列の要素が含まれているかどうかを確認します

    2. 属性は、あるテーブルを別のテーブルの上に指定できますか?

    3. Oracleでdbms_crypto関数を通常のユーザーとして実行するにはどうすればよいですか?

    4. Oracleスケジューラジョブを作成する