Задать вопрос
@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 Простой 4 комментария
Помогут разобраться в теме Все курсы
  • Onskills
    PHP: базовый курс
    1 месяц
    Далее
  • teamcoding
    TC200PY Разработка PHP веб-приложений на Yii2. Шаблон приложения advanced
    3 месяца
    Далее
  • FructCode
    Yii2 Фреймворк
    2 месяца
    Далее
Решения вопроса 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();
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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