我有一个tweet表,存储tweet和它的回复,如下所示
tweet(id,parent_id,tweet_message,time)
其中,如果是推文,则parent_id是自己的id;如果是回复,则是父id。如何查找以拉出id = parent_id的推文
示例:
tweet(1,1,‘我的名字是哈莎’,‘时间’) parent_id = id,因为它是一条推文,而不是回复推文(2,1,‘你好哈莎’,‘时间’) parent_id =1,它告诉它是对id =1的推文的回复
发布于 2010-10-16 05:21:53
从理论上讲,这应该是可行的。查看SQL调试日志,了解如果出现任何错误,它会执行什么操作
$conditions = array(
'Tweet.id = Tweet.parent_id'
);
$tweets = $Tweet->find('all', $conditions);
或者,如果你正在寻找一个特定的ID,你可以这样做
$conditions = array(
'Tweet.id' => 1,
'Tweet.parent_id' => 1
);
$tweets = $Tweet->find('all', $conditions);
您可以使用MySQL <>
not运算符来搜索所有非根tweet
$conditions = array(
'Tweet.id' => 1,
'Tweet.parent_id <>' => 1
);
$tweets = $Tweet->find('all', $conditions);
或
'Tweet.id <> = Tweet.parent_id'
发布于 2010-10-16 05:32:04
为什么不使用Tree behaviour
Yarek T的建议可能会起作用,但只适用于一个级别。
https://stackoverflow.com/questions/3945892
复制相似问题