【问题标题】:How to join two tables with group by and order by in MySQLi?如何在 MySQLi 中使用 group by 和 order by 连接两个表?
【发布时间】:2013-12-24 17:26:56
【问题描述】:

我有两个具有以下结构的表。我想显示两个表中的数据列表,但列表应按T_id 排序并按U_id 分组。

用户

U_id - 名称 - 图片

主题

T_id - U_id - 标题 - 内容 - 日期

输出

T_id - U_id - 标题 - 内容 - 日期 - 名称 - 图片

我不知道如何使用 MySQL 或 MySQLi 来做到这一点,我尝试了几次但都没有成功。如果有人能给我一个想法,将不胜感激。

【问题讨论】:

    标签: mysql join


    【解决方案1】:

    除非您有大量重复时间相同用户在同一天拥有相同主题,否则按 U_id 分组将无效 - 我怀疑您试图提出与您所表达的内容不同的问题。

    【讨论】:

    • 感谢您的回复,实际上用户可能有可能的主题我想为每个用户显示一个主题但最新的主题和顺序应该按主题描述
    【解决方案2】:
    SELECT t.T_id, t.U_id ,t.title, t.content, t.date, u.Name, u.Pic FROM Topic t
    LEFT JOIN User u ON u.U_id = t.U_id 
    GROUP BY u.U_id
    ORDER BY t.T_id DESC
    

    【讨论】:

    • 我知道这一点,但还是不行……实际上所有用户都有主题,用户可能有很多主题我想为每个用户显示一个主题,但最新的主题和列表的顺序应该是按主题 id 作为 desc,你能帮忙吗
    • 它显示什么??
    • 它显示列表,但按 U_ID 而不是 T_ID 排序
    • 如果这不起作用,请尝试使用join 而不是left join
    • 我尝试了左加入和加入你更新的 sql 但仍然无法正常工作,你怎么看?你不觉得我的数据有问题吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    相关资源
    最近更新 更多