2017-09-24 25 views
1

SQL在SQL中查找通用行

我有一個團隊名單,他們玩的是誰,以及遊戲的分數。

  • 擺脫(獨有的遊戲)
  • HID(獨特的家庭)
  • VID(唯一訪問者)

的樣本數據:

rid gamedate hid home Home Score vid visitor Visitor Score 
------------------------------------------------------------------  
183 08/31/2017 4 Aliso   3 15 Beck  2 
261 09/20/2017 4 Aliso   12 137 Mission  2 
306 09/19/2017 4 Aliso   10 194 San   9 
211 08/25/2017 25 Burrou   14 137 Mission  7 
161 09/05/2017 25 Burrou   16 15 Beck  18 
203 08/26/2017 25 Burrou   6 388 Pal   20 
187 08/31/2017 7 Martin Luther 3 15 Beck  2 

我試圖要做的是創建一個查詢來選擇具有「訪客」團隊的「家」團隊。意思是,與一個類似對手比賽的球隊。

我曾嘗試過相交,但我不太清楚如何在這種獨特的情況下使用它。最終的結果是這樣的:

rid gamedate hid home Home Score vid visitor Visitor Score 
-----------------------------------------------------------------  
183 08/31/2017 4 Aliso   3 15 Beck  2 
187 08/31/2017 7 Martin Luther 3 15 Beck  2 
161 09/05/2017 25 Burrou   16 15 Beck  18 
261 09/20/2017 4 Aliso   12 137 Mission  2 
211 08/25/2017 25 Burrou   14 137 Mission  7 

我能辨別什麼隊都起到了類似的團隊配合的結果後,我想我可以從那裏用數據進行工作。

雖然使用相交,但我完全是新手。

謝謝你花點時間看看這個。

+0

謝謝marc_s。我知道我的編輯看起來不正確。 –

+0

嗨,我沒有檢查,最後一個數據行「4 - 馬丁路德」具有相同的id比阿利索> 4. –

+0

謝謝胡安,我做了編輯,以反映ID是唯一的。它應該是獨一無二的。 –

回答

1

使用相交:

使用連接和其他任何:

select d.* from 
(
    select a.rid, a.hid,a.home,a.vid,a.visitor from matches a 
    inner join matches b 
    on a.vid = b.vid 
    group by a.rid,a.hid,a.home,a.vid,a.vid,a.visitor 
    having count(*) > 1 
) c 
inner join matches d 
on c.rid = d.rid 
+1

在SQL中,似乎加入匹配A和B需要「where」子句以外的其他東西。我在'關鍵字'WHERE'錯誤附近收到'錯誤的語法。 –

+0

你的答案是完美的。我的數據在我的數據庫中設置不好,但我知道這是怎麼回事。我謝謝你。我不認爲我能想到這件事。 –

+0

我會很感激,如果你可以標記爲答案,與支票,我讀你想使用相交,但沒有與相交的方式,也許除了......(我認爲是這樣)。 –