Таблица 1 (aws_complianceitem) не имеет первичного ключа, и этот образец данных:
Таблица 2 (aws_instanceinformation) имеет ipaddress и instanceid в качестве уникальных ключей и содержит следующие примеры данных:
Таблица 3 (configinstancestate) имеет ipaddress и resourceid в качестве уникальных ключей и этот образец данных:
Мне нужны данные со всеми запущенными экземплярами.
Это желаемый результат:
Попробовал с полным внешним соединением с запросом ниже,
SELECT
t1.status
, t1.severity
, t1.title
, t1.region
, t1.resourceid
, t2.ipaddress
, t2.computername
, t2.status
, t3.instancestate
FROM
aws_complianceitem t1
FULL OUTER JOIN aws_instanceinformation t2
ON t1.resourceid = t2.instanceid
FULL OUTER JOIN configinstancestate t3
ON t2.ipaddress = t3.resourceid
Но мы фильтруем этот результат, который мы получаем как часть этого запроса с instancestate=blank, имеет пустые записи
Кажется, что два внутренних соединения - с соответствующими условиями - делают то, что вы хотите:
select ac.*, c.*
from aws_complianceitem ac
inner join aws_instanceinformation ai
on ai.resourceid = ac.resourceid
inner join configinstancestate c
on c.resourceid = ac.resourceid and c.ipaddress = ac.ipaddress
@Gandharkhaladkar: я только что исправил опечатку (в конце and). Сейчас работает лучше?
Запросы этого типа не поддерживаются (Сервис: AmazonAthena; Код состояния: 400; Код ошибки: InvalidRequestException; Идентификатор запроса: xxxxxxxxxxxxxxxxxxxx-xxxxxxxxx-1xxxxxxxxxx) получение вышеуказанной ошибки в Athena с этим запросом