2017-10-13 60 views
0

我有兩個表,每個表有4個字段。 A crctitleparentparent_type加入幾個字段,只篩選真正不同的行

這些表中的數據表示文件以及它們屬於哪個實體。

具有相同CRC的文件可以屬於多個實體。

第一個表代表一個時間點的快照,而第二個表代表另一個時間點的快照。

當文件「移動」(將其視爲文件系統mv操作)時,parent和/或parent_type將會更改。

我想被感動快照A和快照B之間的文件列表

這是我目前有:http://sqlfiddle.com/#!5/89f0d4/1

注意file 1屬於2周不同的父母。 file 4被添加/創建。 file 2已從2 GRUP移至3 GRUP。這是我很感興趣的一個

+0

這是回答您的問題嗎? https://stackoverflow.com/questions/5676559/how-to-write-not-in-sql-query-using-join – Nosajimiki

+0

@Nosajimiki號我已經知道如何加入(實際上,我提供的鏈接我目前的進度已經這樣做了)。我所要求的困難是「多重連接與不同」。 – alexandernst

+1

根據你的數據,一個文件可以同時在兩個地方。那是對的嗎? –

回答

0

如果我理解你的問題正確,你需要的是在混合排除那些誰沒有改變加左連接...見下文:

select a.* 
    from memarxiu a 
    join arxiu b 
    on b.crc = a.crc 
    left join (select * 
       from arxiu) c 
    on c.crc = a.crc 
    and c.parent = a.parent 
    and c.parent_type = a.parent_type 
    where a.title = b.title 
    and (a.parent <> b.parent 
    or a.parent_type <> b.parent_type) 
    and c.crc is null; 
+0

讓我檢查我的真實數據。 – alexandernst

+0

它似乎沒有工作。請注意箭頭指向的元素上「父」的更改:https://imagebin.ca/v/3dgU4CXIylpu – alexandernst