2016-03-21 16 views
1

3 tabloya referans veren bir görünüm oluşturuyorum. Görünüm, dosya adlarını ve dosya türlerini el ile yerleştirdiğim dbo.LoadedFiles tablosundan. Diğer ikisi dbo.LandingPages ve dbo.ExitPages. Her ikisi de LoadedFile_id adlı dbo.LoadedFiles ID'den bir FOREIGN KEY referans sütununa sahiptir.Henüz nelerin içe aktarılmadığını gösteren görünüm

Görünümün, LoadedFile öğesinin henüz dbo.LandingPages ve dbo.ExitPages tablolarına aktarılmadığını göstermesini istiyorum.

Şimdiye kadarki kodum, yanlış olduğunu biliyorum, ama sadece referansınız var.

CREATE VIEW [dbo].[vw_FilesNotYetLoaded] 
AS 
    SELECT 
     lf.ID, 
     filename, 
     filetype 
    FROM JPStarter.dbo.LoadedFiles lf 
    JOIN JPStarter.staging.ExitPages AS ep ON lf.ID = ep.LoadedFile_id 
    JOIN JPStarter.staging.LandingPages AS lp ON lf.ID = lp.LoadedFile_id 
    WHERE lf.ID NOT IN (
      SELECT ID 
      FROM JPStarter.dbo.LoadedFiles 
     ) 
+2

(https://technet.microsoft.com/en-us/library/ms187518 (v = sql.105) .aspx) yanıt için –

cevap

0

İstediğiniz sonucu vermek için tablolara katılmanıza gerek yoktur. Alt sorgudaki UNION operatörüne dikkat edin. [Sol katılır.] Oku hakkında

CREATE VIEW [dbo].[vw_FilesNotYetLoaded] 
AS 
SELECT 
    [ID] 
    ,[filename] 
    ,[filetype] 
FROM 
    [JPStarter].[dbo].[LoadedFiles] 
WHERE 
    [ID] NOT IN (
     SELECT 
      [LoadedFile_id] 
     FROM 
      [JPStarter].[staging].[ExitPages] 
     UNION 
     SELECT 
      [LoadedFile_id] 
     FROM 
      [JPStarter].[staging].[LandingPages] 
    ); 
+0

sayesinde bu çalışır. – user6035236

İlgili konular