Mysql 选择不同的多个字段并显示所有字段
我有一个包含以下数据的表格: id name hobbie phone ------------------------------------------ 1 user1 cooking 123 2 user1 cooking 123 3 user1 surfing 123 4 user3 drawing 456 我有两个问题: 我怎么能同时用名字和霍比来区分呢? 我怎样才能输出爱好和手机呢? 我想将其与原始查询一起输出,不重复名称和爱好: id name hobbie phone ------------------------------------------ 1 user1 cooking 123 3 user1 surfing 123 4 user3 drawing 456Mysql 选择不同的多个字段并显示所有字段,mysql,select,distinct,multiple-columns,Mysql,Select,Distinct,Multiple Columns,我有一个包含以下数据的表格: id name hobbie phone ------------------------------------------ 1 user1 cooking 123 2 user1 cooking 123 3 user1 surfing 123 4 user3 drawi
提前感谢。如果您正在查看一个如此小的数据集,而优化并不是真正需要考虑的问题,那么这将是可行的
Select * from Users where id in (
(SELECT MAX(id) as id FROM Users GROUP BY name, hobbie)
您可以使用group by获得所需的输出:
select min(id), name, hobbie, phone
from table t
group by name, hobbie, phone;
您所描述的是:
select min(id), name, hobbie, min(phone) as phone
from table t
group by name, hobbie;
答复1。您可以使用以下查询按名称和hobbie进行区分
SELECT DISTINCT name, hobbie FROM mytable;
SELECT t.*
FROM mytable t
INNER JOIN
( SELECT MAX(id) AS id,
phone,
name,
hobbie
FROM mytable
GROUP BY phone,
name,
hobbie) t2 ON t.id = t2.id
答复2。您也可以使用以下查询输出爱好和手机
SELECT DISTINCT name, hobbie FROM mytable;
SELECT t.*
FROM mytable t
INNER JOIN
( SELECT MAX(id) AS id,
phone,
name,
hobbie
FROM mytable
GROUP BY phone,
name,
hobbie) t2 ON t.id = t2.id