我有两张桌子
field_values(包含一些数据)
id field_id value label sort
1 1 1 Men 1
2 1 2 Women 2
3 2 3 Relationship 1
4 2 4 Chat 2
5 2 5 Friendship 3
user_interests(带有一些数据)
user_id field_id value_id
1 1 1
1 2 4
1 2 5
我正在尝试编写一个查询,在该查询中我将获得具有ID 1的用户并具有field_id 2,并能够在刀片的value_id 4和5中进行回显,但不回显这些ID,而是回显与之对应的'label'列的值value_id在这种情况下来自user_interests表4,5因此在此示例中来自field_values表的Chat,Friendship。这是我尝试过的方法,但我得到了六个元素的数组,分别是“关系”,“聊天”,“友谊x2”。任何帮助表示赞赏。
查询:
public static function queryFunction($userId)
{
$results = DB::table('user_interests as uin')
->select(DB::raw("
fv.*,
uin.field_id, uin.value_id
"))
->join('field_values as fv', 'fv.field_id', '=', 'uin.field_id')
->where('uin.field_id', 2)
->where('uin.user_id', $userId)
->get();
dd($results);
return $results;
}
没有连接的2个清晰步骤呢:
$user_interests = DB::table('user_interests')->select('value_id')->where('field_id', 2)->where('user_id', $userId)->get();
从这个values
作为数组($ user_interests_values),然后
$results = DB::table('field_values')->whereIn('value', $user_interests_values)->get();
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句