我有两个类似的表
Table tname Table tfriend
id name id nameid friendid
1 rick 1 1 2
2 roy 2 1 3
3 richard 3 2 1
4 3 1
我想要像这个一样的输出
id name friends
1 rick roy, richard
2 roy rick
3 richard rick
我已经把这个查询数据库做成这样:
$friend = DB::select('SELECT id, name, (SELECT friendid as friends from tfriends WHERE nameid = id) FROM tname')->get()
但是select内部的select即使在SQL查询中也不起作用,我应该在查询中写些什么才能使它正确?
您可以尝试一下:选择(id,name,(从tfriend中选择tname.name,tname where(从tffriend中选择tfriend.id,tname其中tname.id=tfriend.nameid)=tname.id)作为好友)
您需要在变量中有id并连接到查询中,如果是整数,您可以使用简单的串联样式,不带点,也不带引号,例如>
$query = DB::select(" SELECT * (SELECT friendid as friends from tfriends WHERE nameid = $id) FROM tname");
var_dump($query);
我在这个中使用的解决方案有点棘手
首先,我使用与tname的联接表tfriend声明我的Db的2个,并定期为表tname声明,然后我将其发送到我的刀片
第二,如果我的刀片中有其他类似的东西,我会这样做
@foreach ($names $name)
{{$name->id}}
{{$name->name}}
@foreach ($friends as $friend)
@if ($friend->nameid == $name->id)
{{$friend->name}}<br>
@endif
@endforeach
@endforeach