寻找mysql查询以获取除相同行之外的列值
USER VALUE
----------
Mike 15
Bob 16
Bunny 60
Mike 20
Bob 15
Bunny 20
输出应采用以下格式:
Mike 16
Mike 60
Bob 20
Bob 60
Bunny 15
Bunny 16
答案 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 |
+-------+-------+