id pid type
1 1 2
2 1 7
3 1 8
4 2 8
5 3 7
6 3 8
表结构如上。
pid 与 id 没有任何关系
取出来这两种数据:
1。pid 为 2 的,因为 type 只等于 8
2。pid 为 3 的,因为 type 只有等与 7 与等于 8 的
注:pid 为 1 的不需要,因为有一个 type=2,所以不取。
id pid type
1 1 2
2 1 7
3 1 8
4 2 8
5 3 7
6 3 8
表结构如上。
pid 与 id 没有任何关系
取出来这两种数据:
1。pid 为 2 的,因为 type 只等于 8
2。pid 为 3 的,因为 type 只有等与 7 与等于 8 的
注:pid 为 1 的不需要,因为有一个 type=2,所以不取。
对不起大家了,没描述清楚。 就是要取type=8的或仅有type=8及type=7的pid。 上述例子中,符合条件的只有2,3
|
1
完全不知道在说啥。。
|
|
iblislsyJun 18, 2019
2
完全不知道在说啥。。
|
|
AngryPandaJun 18, 2019
3
语文不及格。
|
|
KannaMakinoJun 18, 2019 via iPhone
4
???
|
|
ashlordJun 18, 2019
5
额所以问题呢?
|
|
sharplessJun 18, 2019 via Android
6
表达的很不准确
|
|
akiraJun 18, 2019
7
1。pid 为 2 的,因为 type 只等于 8
// pid=2 和 type=8 有什么逻辑关系? 2。pid 为 3 的,因为 type 只有等与 7 与等于 8 的 // pid=3 和 type=7/8 又是什么逻辑关系 注:pid 为 1 的不需要,因为有一个 type=2,所以不取 // pid=1 和 type =2 又又是什么逻辑关系 |
|
lyy16384Jun 18, 2019
8
说实话你的附言依然看不懂
|
|
1010543618Jun 18, 2019
9
感觉可以这样 xxx 代表一些 procedure
select pid from (select xxx(type) as type_str, pid group by pid) where xxx(type_str) |
|
1010543618Jun 18, 2019
10
貌似是要根据某个 pid 是否只包含某个 type,找出符合的 pid
|
|
RRRogerJun 18, 2019
11
SELECT * FROM table1 a
WHERE NOT EXISTS (SELECT 1 FROM table1 b WHERE a.pid=b.pid AND a.type <b.type) |
|
maierhuangJun 18, 2019
12
select * from t1 where pid in (select distinct pid from t1 where type in (7,8) and pid not in (select distinct pid from t1 where type !=7 and type !=8));
|