我試圖結合三個表,應用程序,音頻,視頻。它們都具有相同的模式,但音頻和視頻中存在「重複」。視頻中的某個條目將始終以「音頻」顯示。由於整行不重複,因此我將重複項放在引號中,但是基於它們的三個字段。SQL,結合兩個表格,只有不同的值(僅基於三個字段,而不是整行)
音頻表
**Calls | StartTime | EndTime | Quality | CallType**
John | 3/15/16 8:01 | 3/15/16 9:01 | 0 | Audio
Mary | 3/15/16 9:35 | 3/15/16 10:34 | 1 | Audio
視頻表
**Calls | StartTime | EndTime | Quality | CallType**
John | 3/15/16 8:01 | 3/15/16 9:01 | 1 | Video
Sue | 3/15/16 11:32 | 3/15/16 11:50 | 0 | Video
申請表
**Calls | StartTime | EndTime | Quality | CallType**
Matt | 3/15/16 7:31 | 3/15/16 8:01 | 1 | App
Bill | 3/15/16 1:32 | 3/15/16 2:50 | 0 | App
,我想將它們組合成時,有重複,從視頻保持數據的一個表 - 所以你看到約翰只出現過一次,錄像表的質量和呼叫類型爲:
**Calls | StartTime | EndTime | Quality | CallType**
Mary | 3/15/16 9:35 | 3/15/16 10:34 | 1 | Audio
John | 3/15/16 8:01 | 3/15/16 8:01 | 1 | Video
Sue | 3/15/16 11:32 | 3/15/16 11:50 | 0 | Video
Matt | 3/15/16 7:31 | 3/15/16 8:01 | 1 | App
Bill | 3/15/16 1:32 | 3/15/16 2:50 | 0 | App
我試圖用EXCEPT和UNION,選擇在音頻中的所有行指不以視頻顯示出來,然後用視頻的加盟,但因爲它是將他們視爲獨一無二的,因爲CALLTYPE始終是不同的,質量可能會有所不同。
SELECT Calls, StartTime, EndTime, Quality, CallType
FROM Audio
EXCEPT
SELECT Calls, StartTime, EndTime, Quality, CallType
FROM Video
UNION
SELECT Calls, StartTime, EndTime, Quality, CallType
FROM Video
UNION
SELECT Calls, StartTime, EndTime, Quality, CallType
FROM Application
請用你正在使用的數據庫標記你的問題。 –