我有一个推文表,存储推文及其回复
推文(id,parent_id,tweet_message,时间)
其中,如果是一条推文,则parent_id是一个自我ID,如果是一个回复,则为父ID。如何做一个find来拉出id = parent_id
的推文示例:
推特(1,1,'我的名字是Harsha','时间')parent_id = id因为它的推文而不是回复 tweet(2,1,'Hello Harsha','time')parent_id = 1告诉它对id = 1的推文的回复
答案 0 :(得分:3)
为什么不使用Tree behaviour?
可能Yarek T提出的这个建议只能用于一个级别。
答案 1 :(得分:1)
理论上这应该有效。查看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运算符来搜索所有非根推文
$conditions = array(
'Tweet.id' => 1,
'Tweet.parent_id <>' => 1
);
$tweets = $Tweet->find('all', $conditions);
或
'Tweet.id <> = Tweet.parent_id'