Мне нужно реализовать этот необработанный запрос с помощью laravel Eloquent на основе модели table1:
SELECT e.* FROM table1 e
INNER JOIN
(
SELECT et.table1_id FROM table1_table2 et
INNER JOIN table1 e ON e.id = et.table1_id
INNER JOIN tags t ON t.id = et.tag_id
WHERE t.id IN(@tags)
GROUP BY et.table1_id
HAVING COUNT(et.tag_id) = @x
) ee ON e.id = ee.table1_id
JOIN table1_table2 ON table1_table2.table1_id = e.id
JOIN tags ON tags.id = table1_table2.tag_id
GROUP BY table1_table2.table1_id
@tag
var - это целое число через запятую, а @x
var - это число @tag
var.
существует некоторое соотношение между тегами table1 и table1_table2:
В модели table1 мы имеем:
public function tags()
{
return $this->belongsToMany(Tag::class, 'table1_table2', 'table1_id', 'tag_id');
}
моя версия larave - 5.8.35