Как найти всех предков без внуков?

109
01 января 2020, 13:50

знаю, что формулировка вопроса звучит странно, но не смог по-другому.

есть примерно такой запрос, который ищет всех elders, parents и childs.

SELECT `elders`.* FROM `elders` LEFT JOIN `parents` ON `elders`.`col` = `parents`.`elders_col` LEFT JOIN `childs` ON `parents`.`col` = `childs`.`parents_col`

т.к. юзаю yii2, то с использованием конструктора выглядит так:

$model = Elders::find()->joinWith('parents.childs')->asArray()->all();

мне же нужно найти всех elders, у которых может быть связь с parents, но у parents не может быть childs.

помогите сформулировать такой запрос.

Answer 1

Запрос выбирает только тех elders, у которых есть parents без childs

SELECT `elders`.*
FROM `elders`
JOIN `parents`
ON `elders`.`col` = `parents`.`elders_col`
LEFT JOIN `childs`
ON `parents`.`col` = `childs`.`parents_col`
WHERE `childs`.`id` is NULL
READ ALSO
Laravel и elasticsearch

Laravel и elasticsearch

Пытаюсь разобраться, но пока без результатовНужды моего поиска сводятся к тому, чтобы находить товары по их имени

129
multimap замена operator[] для доступа к элементу

multimap замена operator[] для доступа к элементу

Судя по документации на multimap отсутствует доступ к элементам через оператор[] или at, в отличие от mapЕсть ли какая замена для доступа к нужному...

137
Ошибка при перегрузке операторов + и = C++

Ошибка при перегрузке операторов + и = C++

Я написал класс Vector и перегрузил для него операторы = и +Код ниже почему-то приводит к аварийному завершению, хотя и выводит правильный результат

116
Вывести данные о людях, имена которых повторяются

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

Возникла трудность при решении такой задачи: дан массив строк, в котором записаны имена и фамилии пользователейНужно вывести пользователей...

130