一个sql查询的问题
有表如下
主键 字段A 字段B
1 a 111111
2 b 111111
3 c 222222
4 d 222222
5 a 111111
6 c 111111
7 f 111111
8 a 222222
9 c 222222
希望得到的结果是
1 a 111111
3 c 222222
5 a 111111
9 c 222222
因为字段B只能属于一个字段A的值。以字段B分组。第一次出现的字段A和字段B组合为合法的(例如id为1、5的a和id为3的c)
不是第一次出现的字段A+字段B组合不查询出来。
表达的不是很清楚,看看得到的结果大概是这样。希望帮一下忙。谢谢!
-
SQL code
mysql> select * from woaiyingyu321; +----+------+--------+ | id | a | b | +----+------+--------+ | 1 | a | 111111 | | 2 | b | 111111 | | 3 | c | 222222 | | 4 | d | 222222 | | 5 | a | 111111 | | 6 | c | 111111 | | 7 | f | 111111 | | 8 | a | 222222 | | 9 | c | 222222 | | 10 | f | 333333 | | 11 | a | 222222 | | 12 | a | 444444 | +----+------+--------+ 12 rows in set (0.04 sec) mysql> select * -> from woaiyingyu321 -> where (a,b) in (select a,b from woaiyingyu321 group by b); +----+------+--------+ | id | a | b | +----+------+--------+ | 1 | a | 111111 | | 3 | c | 222222 | | 5 | a | 111111 | | 9 | c | 222222 | | 10 | f | 333333 | | 12 | a | 444444 | +----+------+--------+ 6 rows in set (0.10 sec) mysql>