作者ClubT (风)
看板Database
标题Re: [SQL ] 如何找两笔或以上的资料
时间Fri Oct 11 11:46:39 2013
※ 引述《greencha (greencha)》之铭言:
: 各位大哥大姐好, 小弟有一问题求教
: 假设我在TABLE A, 有以下两笔资料, 假设叫 PERSON_ID
: PERSON_ID PERSON_NAME
: 1001 小明
: 1002 小华
: TABLE B中, 有各分组的资料
: TEAM_ID PERSON_ID
: 1 1000
: 1 1001
: 2 1001 *
: 2 1002 *
: 3 1001
: 3 1002
: 3 1003
: 3 1004
: 很明显的, 我最後想要的结果是
: 只有小明和小华同组的 TEAM_ID是2
: 我想找到这个2, 要如何以比较单纯的方法处理 (in Oracle)
: 单纯的意思也是效能要好, 最好不要有FULL TABLE SCAN这样的概念
: 资料可能会有上百万笔
: 非常谢谢您的指教
: ※ 编辑: greencha 来自: 118.233.149.27 (10/10 18:45)
如果你要找的TEAM只会有2个人的话
select TEAM_ID from TableB group by TEAM_ID having count(*)=2 and
Min(PERSON_ID)=1001 and Max(PERSON_ID)=1002
虽然不确定Oracle的语法是不是这样...但应该差不多
--
我的P2个板 自然就是美 倾听‧自然之美
NB_COLSPRING 科技 Σ 冷 泉 港 >生命孕育地,海洋之心
ClubT [风]
有空可以来逛逛^_^
Blog:
http://www.wretch.cc/blog/ClubT http://clubtblog.blogspot.tw
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 1.160.49.148
1F:推 cutekid:推(Y),2 个人的解法 ^_^ 10/11 12:00
2F:→ tedcat:但是如果不是最小最大号的话就不能用了... 10/11 18:32