Выборка данных из 2ух таблиц?

Ссылка скопирована
29 апреля 2026 1 ответ

сть 2 таблицы:

tblEmployees(полный список сотрудников)
tblPermits (допуск у определенных сотрудников) Нужно сравнить 2 таблицы и найти отсутствующих сотрудников в таблице Permits

SQL-запрос выглядит следующим образом:

SELECT 'uuid','fullName','idUnit' FROM 'tblEmployees' WHERE 'uuid' NOT IN (SELECT 'uuid' FROM 'tblPermits' WHERE 'uuid' IS NOT NULL)

SELECT 'uuid','fullName','idUnit' FROM 'tblEmployees' WHERE 'uuid' NOT IN (SELECT 'uuid' FROM 'tblPermits' WHERE 'uuid' IS NOT NULL)

в yii2 sql-запрос прописала:

$subquery = (new yiidbQuery())             ->select('tblPermits.uuid')             ->from('tblPermits')             ->andFilterWhere(['is not', 'tblPermits.uuid', new yiidbExpression('NULL')]);         $q = $query             ->select('*, tblEmployees.uuid, tblEmployees.fullName, tblUnits.name as unitname')             ->from('tblEmployees')             ->join('LEFT JOIN', 'tblUnits', 'tblUnits.idUnit = tblEmployees.idUnit')             ->where(['not in', 'tblEmployees.uuid', $subquery])             ->andWhere(['tblEmployees.status' => 1])

$subquery = (new yiidbQuery()) ->select('tblPermits.uuid') ->from('tblPermits') ->andFilterWhere(['is not', 'tblPermits.uuid', new yiidbExpression('NULL')]); $q = $query ->select('*, tblEmployees.uuid, tblEmployees.fullName, tblUnits.name as unitname') ->from('tblEmployees') ->join('LEFT JOIN', 'tblUnits', 'tblUnits.idUnit = tblEmployees.idUnit') ->where(['not in', 'tblEmployees.uuid', $subquery]) ->andWhere(['tblEmployees.status' => 1])

Как в yii2 вывести массив данных по sql-запросу?

Дополнительно:

Вопрос довольно туманен. Что именно вам не понятно - какой формат результата выборки из БД? Как передать данные на страничку? Что-то другое?

  • Александр Лыкасов, как передать данные на страничку
  • echo '<pre>' . print_r($q->all(), true);
    Что покажет?
  • Дмитрий, выдало массив нужных сотрудников
  • Юлия, вот во вью кидайте $q->all()
  • Дмитрий, а как вывести построчно из запроса ?
  • Юлия, через цикл
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Артём Dev Ответ

    Для выборки данных из двух таблиц в базе данных можно использовать оператор JOIN. JOIN позволяет объединить строки из двух или более таблиц на основе определенного условия.

    Для примера, давайте предположим, что у нас есть две таблицы: users и orders. Таблица users содержит информацию о пользователях, а таблица orders содержит информацию о заказах, которые сделали эти пользователи. Наша задача - выбрать всех пользователей, которые сделали заказы.

    Пример SQL запроса для выборки данных из двух таблиц с использованием оператора JOIN:

    SELECT users.*, orders.*
    FROM users
    JOIN orders ON users.user_id = orders.user_id;

    SELECT users.*, orders.* FROM users JOIN orders ON users.user_id = orders.user_id;

    В данном запросе мы выбираем все столбцы из таблицы users и orders, объединяя их по полю user_id. Это означает, что мы получим все данные о пользователях, которые сделали заказы.

    Если необходимо выбрать определенные столбцы из каждой таблицы, можно указать их в списке выбора:

    SELECT users.name, orders.product
    FROM users
    JOIN orders ON users.user_id = orders.user_id;

    SELECT users.name, orders.product FROM users JOIN orders ON users.user_id = orders.user_id;

    Таким образом, оператор JOIN позволяет объединить данные из двух таблиц на основе определенного условия и получить необходимую информацию для дальнейшей обработки. Не забывайте также указать индексы на соответствующих полях для оптимизации запроса.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно