私の検索クエリはこれです。
//here $u_id is id of the users table retrieved using session variable
$this->User->Request->find("all",array("conditions" =>array("request.status" => "friends" ,
"OR" => array("request.friend_id" => "$u_id","request.user_id" => "$u_id"))));
同等のSQLクエリは次のとおりです。-
SELECT `Request`.`id`, `Request`.`user_id`, `Request`.`friend_id`, `Request`.`status`, `User`.`id`, `User`.`name`, `User`.`email`, `User`.`password`,
FROM
`myblog`.`requests` AS `Request` JOIN `myblog`.`users` AS `User`
ON
(`Request`.`friend_id` = `User`.`id`)
WHERE
((`request`.`friend_id` = 3) OR (`request`.`user_id` = 3)) AND `request`.`status` = 'friends'
上記のSQLクエリの「ON」の後に次の行を入力して、目的の結果を取得する必要があります。
`Request`.`user_id` = `User`.`id` OR `Request`.`friend_id` = `User`.`id`
メソッドにどのような変更を加える必要がありfind()
ますか、それともモデルを変更する必要がありますか?
私のテーブルは次のとおりです。
users(id、name、password、email)
requests(id、user_id(id of users table)、
friend_id(id of users table)、status)