CREATE TABLE [USERS](
[USERID] [int] IDENTITY(1,1) NOT NULL,
[USERNAME] [varchar](100) NULL,
[PASSWORD] [varchar] (50) NULL,
[MAIL] [varchar] (50) NULL,
PRIMARY KEY (USERID)
)
GO
CREATE TABLE [USERCLONE](
[USERID] [int] IDENTITY(1,1) NOT NULL,
[USERNAME] [varchar](100) NULL,
[PASSWORD] [varchar] (50) NULL,
[MAIL] [varchar] (50) NULL,
[ADDDATE] [datetime] DEFAULT(GETDATE()),
PRIMARY KEY (USERID)
)
GO
[USERID] [int] IDENTITY(1,1) NOT NULL,
[USERNAME] [varchar](100) NULL,
[PASSWORD] [varchar] (50) NULL,
[MAIL] [varchar] (50) NULL,
PRIMARY KEY (USERID)
)
GO
CREATE TABLE [USERCLONE](
[USERID] [int] IDENTITY(1,1) NOT NULL,
[USERNAME] [varchar](100) NULL,
[PASSWORD] [varchar] (50) NULL,
[MAIL] [varchar] (50) NULL,
[ADDDATE] [datetime] DEFAULT(GETDATE()),
PRIMARY KEY (USERID)
)
GO
iki adet tablomuz olduğunu düşünelim ve bu tablolar bir trigger ile birine veri eklendiginde digerine de eklendigini farzedelim
Senaryo 1 : Bu iki tablodaki tüm verileri çekerek aynı kayıtların görüntülenmesini engellemek istersek ;
SELECT USERNAME FROM USERS
UNION
SELECT USERNAME FROM USERCLONE
Bu sorguyla çekilen verilerde 1. tabloda olup ikinci tabloda olmayanlar veya 1. ve 2. tabloda olan kayıtları tekrarsız olarak Tek ResultSet ile verecektir. . Tabi Hangi alanları görmek istiyorsanız onları SELECt edebilirsiniz.
Senaryo 2: Tüm alanları tekrarlı da olsa birleştirip tek ResultSet ile vermesini istersek;
SELECT USERNAME ,PASSWORD FROM USERS
UNION ALL
SELECT USERNAME,PASSWORD FROM USERCLONE
bu durumda da tüm kayıtlar birleştirilecek 2 tablonun da kayıtları gösterilecektir.
Yorumlar
Yorum Gönder