Mysql 使用distinct仅检索指定字段的一行
这个查询的问题是它从同一个用户名中选择了多行。我只希望它为每个用户名选择一行 我想我用DISTINCE来做这个 我无法让它工作,有人能帮我吗Mysql 使用distinct仅检索指定字段的一行,mysql,Mysql,这个查询的问题是它从同一个用户名中选择了多行。我只希望它为每个用户名选择一行 我想我用DISTINCE来做这个 我无法让它工作,有人能帮我吗 谢谢。是的!您可以在用户名中使用distinct SELECT SUBSTRING(m.content,1,20) as content, m.viewed, m.sent_date, u.username FROM message m INNER JOIN user u ON u.userid = m.message
谢谢。是的!您可以在用户名中使用distinct
SELECT SUBSTRING(m.content,1,20) as content,
m.viewed, m.sent_date,
u.username
FROM message m
INNER JOIN user u
ON u.userid = m.message_from
WHERE m.message_to = :userid
SELECT SUBSTRING(m.content,1,20) as content, m.viewed, m.sent_date, u.username
FROM message m INNER JOIN user u ON u.userid = m.message_from
WHERE m.message_to = :userid GROUP BY u.userid
这不是应使用的分组方式。在非MySQL DBMS.groupby上试试这个!我用过一段时间了,但记不起来了,觉得它很独特!谢谢你,巴德@波利斯普林斯>这个解决方案有什么问题?@Luke Read.Ahhh你需要用括号括起来。我没有试过。在你看来,什么是更好的方法?Group by或distinct?distinct不是仅适用于某些列的函数。它是一个查询修饰符,适用于选择列表中的所有列。跟随
SELECT Distinct( u.username ), SUBSTRING(m.content,1,20) as content,
m.viewed, m.sent_date
FROM message m
INNER JOIN user u
ON u.userid = m.message_from
WHERE m.message_to = :userid