Cakephp - найди нить - PullRequest
       22

Cakephp - найди нить

0 голосов
/ 16 октября 2010

У меня есть твит-таблица, в которой хранятся твиты и их ответы, подобные этому

твит (id, parent_id, tweet_message, time)

где parent_id - это собственный идентификатор, если его твит иродительского идентификатора, если это ответ.как сделать поиск, чтобы извлечь твиты, где id = parent_id

пример:

твит (1, 1, «Меня зовут Харша», «время») parent_id = id, так как еготвит, а не ответ твит (2, 1, 'Hello Harsha', 'time') parent_id = 1, который сообщает свой ответ на твит с id = 1

Ответы [ 2 ]

3 голосов
/ 16 октября 2010

Почему бы вам не использовать Дерево поведения ?

Возможно, это предложение от Ярека Т будет работать, но только для одного уровня.

1 голос
/ 16 октября 2010

Теоретически это должно работать.Посмотрите журнал отладки SQL, чтобы узнать, что он делает, если есть какие-либо ошибки

$conditions = array(
    'Tweet.id = Tweet.parent_id'
    );
$tweets = $Tweet->find('all', $conditions);

или если вы ищете конкретный идентификатор, вы можете сделать

$conditions = array(
    'Tweet.id' => 1,
    'Tweet.parent_id' => 1
    );
$tweets = $Tweet->find('all', $conditions);

, который вы можете использоватьMySQL <> не оператор для поиска всех некорневых твитов

$conditions = array(
    'Tweet.id' => 1,
    'Tweet.parent_id <>' => 1
    );
$tweets = $Tweet->find('all', $conditions);

или

'Tweet.id <> = Tweet.parent_id'
...