laravel: конвертировать sqk в laravel OEM - PullRequest
0 голосов
/ 30 января 2020

Пожалуйста, как преобразовать этот sql запрос в Laravel eloquent? SQl:

select n.element, n.type, n.note
        from notes AS n
        inner join (
            SELECT element, COUNT(*) AS dupeCount
            FROM notes
            GROUP BY element
            HAVING COUNT(*) > 1
        ) AS oc on n.element = oc.element

Я устал преобразовывать его в laravel с помощью выбора БД и работал, но я хочу добавить, где в конце и использовать этот код в foreach l oop, где аргумент изменился но это не работает из-за того, что вы поставили аргумент в цитате подписи

Пожалуйста, не могли бы вы мне помочь?

1 Ответ

1 голос
/ 30 января 2020

Используйте Eloquent для получения подзапроса.

И присоединитесь к подзапросу, как показано ниже, и вы можете использовать mergeBindings для привязки параметров:

$sub_query = Note::groupBy('element')
                ->having(DB::Raw('COUNT(*) > 1'))
                ->select('element', DB::raw('COUNT(*) AS dupeCount'));

Note::join(DB::raw("({$sub_query->toSql()}) AS oc"), "oc.element", "=", "notes.element")
     ->mergeBindings($sub_query->getQuery())
     ->select("notes.element", "notes.type", "notes.note")
     ->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...