Выборка данных из 2ух таблиц?
сть 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-запросу?
Дополнительно:
Вопрос довольно туманен. Что именно вам не понятно - какой формат результата выборки из БД? Как передать данные на страничку? Что-то другое?
Что покажет?
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для выборки данных из двух таблиц в базе данных можно использовать оператор JOIN. JOIN позволяет объединить строки из двух или более таблиц на основе определенного условия.
Для примера, давайте предположим, что у нас есть две таблицы: users и orders. Таблица users содержит информацию о пользователях, а таблица orders содержит информацию о заказах, которые сделали эти пользователи. Наша задача - выбрать всех пользователей, которые сделали заказы.
Пример SQL запроса для выборки данных из двух таблиц с использованием оператора JOIN:
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;
Таким образом, оператор JOIN позволяет объединить данные из двух таблиц на основе определенного условия и получить необходимую информацию для дальнейшей обработки. Не забывайте также указать индексы на соответствующих полях для оптимизации запроса.