2014-06-24 33 views
-1

我有下列数据的表:SQL SUBQUERY对自

licence_number 
date_of_birth 
organisation 

我想要做一个查询,其中:

获取licence_numbers和DOBS在organisation1在同一 牌照号码并且dobs在组织2中。

我知道它不能那么辛苦,但我正在挣扎。

+3

挣扎?请显示你的斗争结果。 –

+1

这确实是一个问题的不好迹象,如果OP没有付出任何努力,OP就没有被高级代表用户回答,甚至没有遵守。看到这里本身:2个用户的回答大于** 100k **的答案。 –

+0

@SatwikNadkarny嗯,不是说这是一个好问题,但“必须显示一个最小的理解”的密切原因已经消失了,问题就我所能看到的那样清楚地陈述。如果您能看到合适的密切理由,请随时投票结束。 –

回答

3

您可以通过license_number和DATE_OF_BIRTH群里组织被设置为两个有趣的组织,并指望有多少不同的组织有一组。

如果在一个组中有两个可能的两个可能,你有一个命中。

SELECT license_number, date_of_birth 
FROM mytable 
WHERE organisation IN ('organisation1', 'organisation2') 
GROUP BY license_number, date_of_birth 
HAVING COUNT(DISTINCT organisation) = 2; 

...或者你可以使用INTERSECT;

SELECT license_number, date_of_birth 
FROM mytable WHERE organisation = 'organisation1' 
INTERSECT 
SELECT license_number, date_of_birth 
FROM mytable WHERE organisation = 'organisation2' 

An SQLfiddle to test both

+0

是什么让你相信有两张表?你从两个组织获得同样的组织。有什么意义? –

+0

@ClodoaldoNeto谢谢你,你绝对正确。我更新了答案,以回答正确的事情:) –

+0

谢谢,相交 - 是我需要的。我出于某种原因试图加入。完全忘记了相交。 – Mark

0
select 
from t t0 
where 
    organization = 'organization1' 
    and 
    exists (
     select 1 
     from t 
     where 
      organization = 'organization2' 
      and 
      licence_number = t0.licence_number 
      and 
      date_of_birth = t0.date_of_birth 
    ) 
+0

这是一个很好的答案。为什么它低调? – joop

+0

@joop可能因为downvoter既不理解问题也不回答 –

+0

...或者他可能不喜欢格式化;-) – joop

0

您只需自加入其中,许可证编号和日期相同的表,但该组织并不:

SELECT DISTINCT p1.licence_number, p1.date_of_birth 
FROM people p1 
INNER JOIN people p2 
ON p1.licence_number = p2.licence_number AND 
p1.date_of_birth = p2.date_of_birth AND 
p1.organisation <> p2.organisation 

SQL Fiddle here

-1

它是一个JOIN或1个表?

Select 

[licence_number], 
[date_of_birth], 
[organisation] 
From YourTable 
Where organisation1 = organisation2 

--OR 

Select 

[licence_number], 
[date_of_birth], 
[organisation] 
From YourTable 
Where organisation1 IN ('organisation2','organisation3','organisation3') 
Order By [licence_number] 
+1

这是无效的SQL(用于Postgres和任何其他符合标准的数据库)。 –

+0

你想开源然后MySQL – sz1