Laravel DB自定义

时间:2019-01-22 03:45:40

标签: database laravel-5

我有2张这样的桌子

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查询中也不起作用,我应该在查询中写些什么来使其正确?

3 个答案:

答案 0 :(得分:0)

您可以尝试: select(id,name,(从tfriend中选择tname.name,tname其中(从tfriend中选择tfriend.id,tname其中tname.id = tfriend.nameid)= tname.id)作为朋友)

答案 1 :(得分:0)

您需要在变量中包含id并进行查询,如果为整数,则可以使用简单的串联样式,变量中不带点且不带引号,例如>

delete

答案 2 :(得分:0)

好吧,我在此使用的解决方案有些棘手

首先,我确实使用连接表tfriend和tname声明了我的Db 2,并定期声明了tname表,然后将其发送到刀片服务器

第二,我像这样在刀片中进行if-else

public function offers()
{
    return $this->hasMany(Offer::class);
}