在其中一个字段中查找具有相同值的SQL记录
问题描述:
嘿,我试图找出那些在co72010讲座中同时开始的事件。我不知道如何去做这件事,我必须做一个INNER JOIN
或GROUP BY
?在其中一个字段中查找具有相同值的SQL记录
events
id modle kind dow tod duration room
co12004.L01 co12004 L Wednesday 11:00 1 cr.SMH
co12004.L02 co12004 L Monday 17:00 1 cr.B13
co12004.T01 co12004 T Monday 11:00 2 co.G78+G82
co12004.T02 co12004 T Tuesday 15:00 2 co.B7
co12004.T03 co12004 T Tuesday 13:00 2 co.G78+G82
答
您可以使用Exists
。也许是这样的:
Select E.*
From Events E
Where Exists
(
Select 1
From Events O
Where O.dow = E.dow
And O.tod = E.tod
And O.modle = 'co72010'
)
或者,你可以使用一个Join
还有:
Select E.*
From Events E
Join Events O On O.Dow = E.Dow
And O.Tod = E.Tod
Where O.Modle = 'co72010'
答
Select E.*
From event E
Where Exists
(
Select 1
From event O
Where O.dow = E.dow
And O.tod = E.tod
And O.modle = 'co72010'
) and E.modle != 'co72010'
因此,它并没有表现出同样模块,只有那些在的那些同时co72010,但不是它本身?
答
SELECT a.id, a.modle, a.dow, a.tod, b.id, b.modle, b.dow, b.tod
FROM event a JOIN event b on (a.dow=b.dow AND a.tod=b.tod)
WHERE a.modle = 'co72010' AND b.modle != 'co72010'
+1
欢迎来到StackOverflow,提供一个关于为什么这是正确的解决方案的上下文会有所帮助。 – jessehouwing 2016-01-01 18:47:59
我没有看到任何在任何领域有co72010的东西。在那里,这很容易。 – Siyual 2014-09-05 14:21:33
哈哈它不是记录的整个列表...:P – Richard 2014-09-05 14:27:29
在你的问题中陈述一个价值的观点是帮助其他人试图找到一种方法来帮助你。这些信息是无用的,除非你向社区展示正确的价值观,以便人们最好地理解你所说的话,以避免@Siyual这样的评论,他们实际上是正确的。 – 2014-09-05 14:36:26