Yii2 как сделать запрос с условием существования связных данных?
Доброго времени суток!
Есть две таблицы, допустим, articles и photos.
Запрос на получение данных примерно такой: $query = Articles::find()->where([...])->with('photos')->all();
У каждой статьи из таблицы articles может быть, допустим, от 0 до 5 фотографий, то есть., проще говоря связные записи в таблице photos для таблицы articles либо есть, либо их нет.
Подскажите, пожалуйста, как построить запрос таким образом, чтобы получить только те статьи, в которых нет фотографий (записей в таблице photos)?
tukreb, is null понятно как применить для текущей таблицы. А вот как указать условие наличия связных данных никак не пойму... Можете, пожалуйста, подсказать, как примерно будет выглядеть этот запрос?
tukreb, спасибо, друг! До меня наконец то дошло! Я не до конца указал условия.
Вот пример как сработало:
$query = Articles::find()
->leftJoin('photos', 'photos.article_id = articles.id')
->where(['is', 'articles_id', null])
->all();
tukreb, Мне нужно усложнить запрос, подскажи, пожалуйста, если знаешь, как он должен примерно выглядеть?
Задача звучит примерно так:
У каждой статьи из таблицы articles может быть, от 0 до 5 фотографий одного типа и от 0 до 5 фотографий другого типа. Допустим 'before' и 'after'. Колонка в таблице 'photos' имеет название 'made'.
Не могу разобраться, как составить запрос таким образом, чтобы вывести статью, при следующих условиях -
1. У статьи нет фотографий (это реализовано, выше скидывал код, и работает)
2. У статьи нет фотографий 'before'
3. У статьи нет фотографий 'after'
Как составить такое условие?