Yii 1.x. Задать в $criteria выборку с исключением

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Gogi
Сообщения: 103
Зарегистрирован: 2015.04.16, 09:20

Yii 1.x. Задать в $criteria выборку с исключением

Сообщение Gogi »

Есть две таблицы:user and student, которые связаны по полях соответственно id-id_user, связь один ко многим. Пример user
Изображение

student введите сюда описание изображения
Изображение
Нужно выбрать всех user'ов, которые не являются student'ами. Это те юзеры которых нет в таблице студентов и те у которых поле end_date не null. В нашем примере это студенты с id: 3, 4.

Вот как я это делал:

Код: Выделить всё

$criteria->alias = 'u';
$criteria->join = 'LEFT JOIN student s ON s.id_user = u.id';
$criteria->addCondition('s.id is NULL or s.end_date is not NULL');
Но здесь не учтено то когда у одного студента end_date null и не null. Юзера с ид=2 выбирает как не студента, хотя он студент. Если студент хотябы раз встречается в таблице студент и имеет end_date = null, то он в условие не попадает.
Ответить