@dasauser
Пишу на PHP

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

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

есть примерно такой запрос, который ищет всех 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.

помогите сформулировать такой запрос.
  • Вопрос задан
  • 96 просмотров
Решения вопроса 1
@dasauser Автор вопроса
Пишу на PHP
надо к текущему запрос просто добавить WHERE `childs`.`parents_col` IS NULL
выглядит так (sql):
SELECT `elders`.* FROM `elders` LEFT JOIN `parents` ON `elders`.`col` = `parents`.`elders_col` LEFT JOIN `childs` ON `parents`.`col` = `childs`.`parents_col` WHERE `childs`.`parents_col` IS NULL

yii2:
Elders::find()->joinWith('parents.childs')->where(['childs.parents_col' => null])->asArray()->all();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы