Я написал следующий запрос MYSQL и версия Mysql: 8.0.18-commercial
SELECT p.server, 'Type1' AS Check_Type,
GROUP_CONCAT(vmtable.res SEPARATOR ', ') AS result
FROM server p
INNER JOIN truns t ON t.oq_id = p.oq_id
AND t.id = (SELECT t2.id FROM truns t2
WHERE t2.oq_id = p.oq_id
order by t2.created_at desc limit 1 )
INNER JOIN qvuln_info vmtable ON vmtable.run_id = t.id
LEFT JOIN qvuln_info_data vmtableinfo ON vmtableinfo.qid = vmtable.qid
WHERE p.server regexp 'server1'
GROUP BY p.server
Я получаю вывод:
Hostname Check_Type result
server1 Type_ABC Result 1,Result 2,Result 3,Result 4
Я хочу добавьте еще один столбец как VulCount
на верхнем уровне, и это значение должно быть получено из одного из внутренних запросов соединения:
SELECT t2.id
FROM truns t2
WHERE t2.oq_id = p.oq_id
order by t2.created_at desc
Вывод должен выглядеть следующим образом:
Hostname VulCount Check_Type result
server1 4 Type_ABC Result 1,Result 2,Result 3,Result 4
Здесь 4
- это вывод
SELECT count(*)
FROM truns t2
WHERE t2.oq_id = p.oq_id
order by t2.created_at desc