2016-09-06 72 views
0

我正在努力使用基本的SQL。我有如下表TICKET獲取重複的最早條目

 
----------------------- 
|  TICKET  | 
----------------------- 
|id | date  | team | 
----------------------- 
| 1 |22/07/2016| A | 
| 2 |24/07/2016| B | 
| 3 |24/07/2016| B | 
| 1 |23/07/2016| C | 
| 4 |25/07/2016| A | 
| 5 |26/07/2016| A | 
| 5 |27/07/2016| B | 
----------------------- 

有時候,一兩天後,門票可以影響到其他小組(見上文爲例,從售票A隊1個swithes團隊C)。我需要的是所有原本屬於A隊的門票列表(即 - 相同的ID,但不同的球隊; A隊最早的球隊)

我不太確定我已經擁有的「切換團隊部分「:

SELECT id, date, team 
FROM TICKET 
WHERE (
    id IN (
     SELECT id 
     FROM TICKET 
     WHERE (team = 'B' OR team = 'C') 
    ) 
) 
AND team = 'A' 

我應該在某處放置ORDER BY日期以及GROUP BY子句嗎?沒有更好的解決方案嗎?

+0

你的PK是什麼?在你的數據庫中沒有獨特的東西。即使你的身份證不是身份證? –

+0

你可以添加你想要得到的行嗎?我看到你的句子至少有3種不同的可能的解釋(因此可能的結果)。 – Solarflare

+0

我想'(id,date)'必須是pk(「一兩天後...」) – Solarflare

回答

0
select distinct t.id 
from ticket t 
    inner join ticket t1 on t.id=t1.id and t1.team<>'A' and t.date<t1.date 
where 
    t.team='A'