【问题标题】:Mysql query -> get all data using parentIDMysql 查询 -> 使用 parentID 获取所有数据
【发布时间】:2020-11-28 00:05:38
【问题描述】:

我是 StackOverflow 的新手,第一次在这里发帖,我想知道是否有人可以帮助我进行 mysql 查询。

我有这个数据库:

Review Table
id | user_id | from_user_id | parent_id
5       10           15           0
6       10           15           5
7       10           19           0
8       11           12           0
9       10           12           0
10      10           13           0
11      10           12           9

基本上我正在创建一个评论系统,from_user_id 正在向 user_id 写评论,并且会有 parent_id = 0 但是当 User_id正在回复评论,它将具有相同的(user_id 和 from_user_id )但 parent_id == id 正在重播的评论。

如何获得按此顺序显示结果的查询:

id | user_id | from_user_id | parent_id
5       10           15           0
6       10           15           5
7       10           19           0
9       10           12           0
11      10           12           9
10      10           13           0

选择特定用户的所有评论,按 created_at 排序(未包含在我的示例中),但每次评论都有一个 parent_id 显示在下一行,然后移动到下一个评论行

【问题讨论】:

  • 我添加了hierarchical-data 标签。 Stack Overflow 上有很多关于这个一般主题的其他答案。您可能会发现一些有用的东西。

标签: mysql parent hierarchical-data parentid


【解决方案1】:

好的,我解决了问题

SELECT
    reviews.id, reviews.user_id, reviews.from_user_id, reviews.parent_id, reviews.created_at,
    CASE WHEN parent.Id IS NULL THEN reviews.created_at ELSE parent.created_at END AS sort1,
    CASE WHEN parent.Id IS NULL THEN NULL ELSE reviews.created_at END AS sort2
        
FROM reviews
LEFT JOIN reviews AS parent
ON reviews.parent_id = parent.id

where reviews.user_id = '52'
ORDER BY sort1, sort2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-30
    • 1970-01-01
    • 2019-02-10
    • 2015-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    相关资源
    最近更新 更多