| postid | ref_postid | title |
| 1 | 0 | Title 1 |
| 2 | 1 | |
| 3 | 1 | |
| 4 | 0 | Title 2 |
| 5 | 4 | |
这是一个讨论论坛的表格。当ref_postid = 0时,这意味着它是一个主要帖子。当ref_postid不为0时,它是一个答案并引用了一个postid,参见上面的表格示例。 (只有主要帖子有标题。)
我想选择表格中的所有行,但问题是我想显示答案引用的讨论标题。
示例:假设我想要postid = 2的行,我也希望得到“标题1”,这是讨论的名称。
我尝试用CASE做,但我只是遇到了错误。我不是很擅长这个。一个查询是否可行?或者我必须使用两个查询吗?
感谢您的帮助!
答案 0 :(得分:1)
select ifnull(q.title, a.title) title, ... (other columns)
from posts a
left join posts q on a.ref_postid <> 0 and a.ref_postid = q.postid