寻找mysql查询以获取除相同行之外的列值

时间:2015-11-08 17:43:06

标签: mysql sql

寻找mysql查询以获取除相同行之外的列值

USER  VALUE   
----------
Mike  15        
Bob   16        
Bunny 60        
Mike  20
Bob   15
Bunny 20 

输出应采用以下格式:

USER VALUE

Mike   16
Mike   60       
Bob    20
Bob    60       
Bunny  15
Bunny  16

2 个答案:

答案 0 :(得分:1)

非常奇怪的要求。以下是一种适用于您问题中数据的方法:

select t.user, group_concat(t2.value order by t2.value)
from t join
     t t2
     on t2.user <> t.user
group by t.user;

答案 1 :(得分:0)

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table (USER VARCHAR(12) NOT NULL,VALUE   INT NOT NULL,PRIMARY KEY(user,value));

INSERT INTO my_table VALUES 
('Mike',15),
('Bob',16),
('Bunny', 60),
('Mike',  20),
('Bob',   15),
('Bunny', 20); 

 SELECT DISTINCT a.* 
   FROM (SELECT x.user,y.value FROM my_table x,my_table y) a 
   LEFT 
   JOIN my_table b 
     ON b.user = a.user 
    AND b.value = a.value 
  WHERE b.user IS NULL;
+-------+-------+
| user  | value |
+-------+-------+
| Bunny |    15 |
| Bunny |    16 |
| Mike  |    16 |
| Bob   |    20 |
| Bob   |    60 |
| Mike  |    60 |
+-------+-------+
相关问题