我想将此查询用于我的laravel应用程序,但我不知道如何编写IF部分!
SELECT
`users`.* ,
IF(`friends`.`user_id` = '2' , TRUE , FALSE) AS `user_friend`
FROM `users`
LEFT JOIN `friends` ON `friends`.`friend_id` = `users`.`id` AND `friends`.`user_id` = '2'
WHERE `users`.`id` != '2'
答案 0 :(得分:3)
您可以使用DB::raw
。
User::select(DB::raw('users.* , IF(friends.user_id = '2' , TRUE , FALSE) AS user_friend'))
->join('friends', 'friends.friend_id', '=', 'user.user_id')
->where('friends.user_id, 2)
->where('user.id', '!=', 2);
更新:
->join('friends', function ($join) {
$join->on('friends', 'friends.friend_id', '=', 'user.user_id')
->where('friends.user_id', 2);
})
答案 1 :(得分:1)
请尝试以下完整查询:
User::select(DB::raw("users.* , IF(friends.user_id = '2' , TRUE , FALSE) AS user_friend"))
->join('friends', function ($join) {
$join->on('friends', 'friends.friend_id', '=', 'user.user_id')
->where('friends.user_id', 2);
});
这是@SteD回答修正后的版本。希望这对你有用!