PostgreSQLテーブル垂直マージ(UNION&UNIONAL)


Introduction


  • 複数のテーブルを処理する場合、使用するためにテーブルをマージする必要がある場合があります.

  • select文を使用して、同じ列を持つ複数のテーブルを垂直にマージします.
  • DATASET QUERY
    CREATE TABLE app1 (
        user_id varchar(255)
      , name    varchar(255)
      , email   varchar(255)
    );
    
    INSERT INTO app1
    VALUES
        ('U001', 'sedsf', '[email protected]'  )
      , ('U002', 'ferd', '[email protected]')
      , ('U003', 'yop', '[email protected]')
      , ('U004', 'dsf', '[email protected]');
    
    CREATE TABLE app2 (
        user_id varchar(255)
      , name    varchar(255)
      , email   varchar(255)
    );
    
    INSERT INTO app2
    VALUES
        ('U004', 'dsf','[email protected]' )
      , ('U003', 'yop', '[email protected]' )
      , ('U007', 'ewasf', '[email protected]' )
      , ('U008', 'ggfe', '[email protected]' );

    UNION (UNION DISTINCT)


    縦方向連結、重複データなし
    select user_id, name, email from app1
    UNION
    select user_id, name, email from app2;

    UNION ALL


    縦方向連結、重複データなし
    select user_id, name, email from app1
    UNION ALL
    select user_id, name, email from app2;

    Reference

  • https://ysyblog.tistory.com/140