Я хочу сопоставить конкретные столбцы в двух таблицах и получить обратно совпадающие значения на основе временных отметок, то есть событий, которые произошли одновременно, но записаны в двух отдельных таблицах. Я использую MYSQL INNER JOINS
, как показано ниже:
Пока мой запрос выглядит так:
String threatQueryJoin = "SELECT awsevents.ALERT.resourceName, awsevents.RECORD.Record_Id,awsevents.RECORD.resourceName, "
+ "awsevents.ALERT.alert_id FROM awsevents.ALERT inner join awsevents.RECORD on awsevents.ALERT.resourceName "
+ "= awsevents.RECORD.resourceName where (awsevents.ALERT.timeStamp >= '2019-05-10' AND awsevents.RECORD.timeStamp >= '2019-05-10') "
+ "AND (awsevents.ALERT.resourceName='company-checker-log-963f5e78-0dea-46f1-9a48-5a116bdae350' "
+ "AND awsevents.RECORD.resourceName='company-checker-log-963f5e78-0dea-46f1-9a48-5a116bdae350') order by awsevents.RECORD.timeStamp";
Query q = AWSEventsDAO.em.createNativeQuery(threatQueryJoin);
List ll = q.getResultList();
Ответ на запрос в MySQL workbench
выглядит хорошо:
![table inner join resuktset](https://i.stack.imgur.com/AwoiA.png)
Однако я хочу записать результаты в другую таблицу. Поскольку я не владею MySQL
, я буду рад узнать, есть ли лучший способ для обработки таких запросов. Используя inner join
, у меня появляется следующая ошибка:
Exception Description: The primary key read from the row [ArrayRecord(
=> company-checker-log-963f5e78-0dea-46f1-9a48-5a116bdae350
=> 45167
=> company-checker-log-963f5e78-0dea-46f1-9a48-5a116bdae350
=> 8108)] during the execution of the query was detected to be null. Primary keys must not contain null.