我有以下SQL查询。我想在laravel查询构建器中实现相同的查询。但没有运气。可以帮助我如何构建这个。
SELECT DISTINCT IF(follower_id = 1, leader_id, follower_id ) as user_id,U.email,T.name FROM `followers` as F JOIN users as U ON IF(follower_id = 1, U.id = F.leader_id,U.id=F.follower_id ) JOIN timelines as T ON U.timeline_id = T.id where F.follower_id = 1 OR F.leader_id =1
我不知道如何添加这个条件
ON IF(follower_id = 1, U.id = F.leader_id,U.id=F.follower_id )
Laravel查询构建器中的。
答案 0 :(得分:0)
我没有经过测试,但这样的事情可能就是你想要的:
<?php
DB::connection('my_connection')
->table('followers AS F')
->select([
'DISTINCT IF(F.follower_id = 1, F.leader_id, F.follower_id) AS user_id',
'U.email',
'T.name',
])
->leftJoin(
'users AS U', function ($join) {
$join->on('U.id'. '=', 'F.leader_id')->where('F.follower_id', '=', 1);
$join->on('U.id', '=', 'F.follower_id')->where('F.follower_id', '<>', 1);
}
)
->leftJoin(
'timelines AS T', 'T.id', '=', 'U.timeline_id'
)
->where([
['F.follower_id', '=', 1],
['F.leader_id', '=', 1]
]);