Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Task::where("tasks.gdz_id", $gdz_id)
->where("tasks.sekktion_id",$sekktion_id)
->where("tasks.image_tip",1)
->leftJoin('tasks as t2', 'tasks.groop', '=', 't2.groop')
->where("t2.image_tip",2)
->get();
Получается результат:
1) Задание1 - Ответ1
2) Задание3 - Ответ3
3) Задание4 - Ответ4
4) Задание5 - Ответ5
НУЖЕН результат такой:
1) Задание1 - Ответ1
2) Задание2 -
3) Задание3 - Ответ3
4) Задание4 - Ответ4
5) Задание5 - Ответ5
Так тоже не помогло:
Task::where("tasks.gdz_id", $gdz_id)
->where("tasks.sekktion_id",$sekktion_id)
->where("tasks.image_tip",1)
->leftJoin('tasks as t2',function($join) {
$join->on('tasks.groop', '=', 't2.groop')
->where("t2.image_tip",2);
})
->get();
Тот же результат...
ЧТО НЕ ТАК ?????
Не в сети
Так ты фильтруешь
->where("t2.image_tip",2)
где t2 - это таблица, по которой ты джоинишь
Первое что приходит в голову - это делать подзапрос, но думаю можно сделать как-то изящнее.
Изменено covobo (16.02.2018 16:12:32)
Не в сети
Дело в том что джоиню туже самую таблицу - tasks
В первой выборке делаю фильтр
->where("tasks.image_tip",1)
И потом джоиню
->leftJoin('tasks as t2', 'tasks.groop', '=', 't2.groop')
Но уже нужно присоеденить другие данные... и потому фильтр ->where("t2.image_tip",2)...
Но я уже нашёл решение! Изменил структуры базы... Вынес данные во вторую аблицу и тот-же самый запрос - только джоиню другую таблицу, а результат тот который мне нужен.
Не в сети
Найди решение сначала на честном SQL, а уже потом перекладывай его на Eloquent … если захочешь.
There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Не в сети