使用SQL从同一个表中的两行中选择

时间:2012-02-17 11:12:41

标签: mysql sql

| 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做,但我只是遇到了错误。我不是很擅长这个。一个查询是否可行?或者我必须使用两个查询吗?

感谢您的帮助!

1 个答案:

答案 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