2016-09-06 69 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'