kotcich
@kotcich
Я скучный.

Как получить данные, без связи?

return Project::find()
            ->leftJoin('project_user', 'project_user.project_id = project.id')
            ->select(['project.id', 'project.title'])
            ->where(['!=', 'project_user.user_id', $user_id])
            ->asArray()
            ->all();


Мне нужно получить все проекты, к которым у $user_id нет связи в project_user. Как это сделать?
Проблема этого запроса в том, что он все равно выведет проект, с которым у юзера нет связи, если в таблицу project_user есть связь с другим пользователем (то есть если есть еще 1 и больше записей с этим проектом).
  • Вопрос задан
  • 41 просмотр
Решения вопроса 1
vilinyh
@vilinyh
return Project::find()
    ->alias('p')
    ->leftJoin('project_user pu', 'pu.project_id = p.id and pu.user_id = :userId')
    ->select(['p.id', 'p.title'])
    ->where(['pu.user_id' => null])
    ->params(['userId' => $user_id])
    ->asArray()
    ->all();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы