Laravel DB custom - PullRequest
       1

Laravel DB custom

0 голосов
/ 22 января 2019

У меня есть 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()

но что выбор внутри выбора не работает даже в SQL-запросе, это работа, что я должен написать в запросе, чтобы сделать это правильно?

Ответы [ 3 ]

0 голосов
/ 22 января 2019

вам нужно иметь идентификатор в переменной и вписывать в запрос, если это целое число, вы можете использовать простой стиль конкатенации без точек и без кавычек вокруг переменной, например>

$query = DB::select(" SELECT * (SELECT friendid as friends from tfriends WHERE nameid = $id) FROM tname");
var_dump($query);
0 голосов
/ 15 февраля 2019

ну, у меня есть немного хитрости для моего решения, которое я использую в этом

сначала я объявляю 2 моих БД с помощью таблицы соединений tfriend с tname и регулярно объявляю для таблицы tname, а затем отправляю их на свой блейд

во-вторых, я делаю если-либо в моем клинке вот так

@foreach ($names $name)
   {{$name->id}}
   {{$name->name}}
   @foreach ($friends as $friend)
      @if ($friend->nameid == $name->id)
         {{$friend->name}}<br>
      @endif
   @endforeach
@endforeach
0 голосов
/ 22 января 2019

Вы можете попробовать это: выберите (id, name, (выберите tname.name из tfriend, tname where (выберите tfriend.id из tfriend, tname где tname.id = tfriend.nameid) = tname.id) в качестве друзей)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...