Ниже приведен пример таблиц:Объединение двух таблиц на основе двух общих столбцов, которые появляются под разными названиями в каждой таблице
клиенты
╔══════════╦════════════╗
║ GROUP_ID ║ GROUP_NAME ║
╠══════════╬════════════╣
║ abc ║ xex ║
║ def ║ tet ║
╚══════════╩════════════╝
команды
╔════════╦════════════╗
║ ACT_ID ║ GROUP_NAME ║
╠════════╬════════════╣
║ 44 ║ xex ║
║ 32 ║ tet ║
╚════════╩════════════╝
действия
╔════╦════════════╗
║ ID ║ STATE ║
╠════╬════════════╣
║ 44 ║ complete ║
║ 58 ║ incomplete ║
╚════╩════════════╝
Обратите внимание, что act_id
в таблице teams
также присутствует в таблице actions
в id
Я хочу, чтобы выбрать таблицу с двумя столбцами: group_id
и group_name
, где каждый group_name
имеет act_id
, который имеет полныйstate
.
Я делаю что-то вроде:
SELECT group_id AND group_name
FROM clients
WHERE group_name IN (SELECT group_name
FROM teams, actions
WHERE teams.act_id = actions.id
AND actions.state IS complete)
Является ли это правильно?
Я также думал, что-то вроде
SELECT group_id AND group_name
FROM clients
WHERE group_name IN (SELECT group_name
FROM teams
WHERE act_id IN (SELECT id
FROM actions
WHERE teams.act_id = actions.id.
AND state IS complete))
Является либо из вышеперечисленного правильно?
В таблице Я ищу, чтобы получить это, очевидно, это одна:
╔══════════╦════════════╗
║ GROUP_ID ║ GROUP_NAME ║
╠══════════╬════════════╣
║ abc ║ xex ║
╚══════════╩════════════╝
Спасибо большое вам ответить JW. Используемые вами a, b и c - это просто случайные имена, которые вы назначаете для каждой таблицы, чтобы вы могли легко идентифицировать их и провести различие между ними в вашем запросе? Не могли бы вы также дать мне вышеуказанный запрос, используя мой собственный более подробный формат (без JOINS, просто используя WHERE, IN, IS, IS NOT, =), чтобы я мог лучше понять, что вы делаете? Или это невозможно без JOINs? Еще раз спасибо, и я обязательно посмотрю на ПРИСОЕДИНЯЕМЫЕ. –
'a, b, c' называются' ALIAS' (* или псевдонимы в терминах имени человека *). Существует множество возможных запросов для достижения определенного результата. Тот, который мне больше всего нравится, - это «JOIN». Это также можно сделать с помощью 'EXISTS'. ';)' –