Fix(Filter): Handle events with multiple tags

Fixes an error that occurred when running a named filter that returned events that contained more than one tag.

Subquery returns more than 1 row
This commit is contained in:
Simpler1
2025-12-19 09:32:19 -05:00
committed by GitHub
parent 641e785f4c
commit adf3eb2381

View File

@@ -165,7 +165,7 @@ sub Sql {
if ( $term->{attr} eq 'AlarmedZoneId' ) { if ( $term->{attr} eq 'AlarmedZoneId' ) {
$term->{op} = 'EXISTS'; $term->{op} = 'EXISTS';
} elsif ( $term->{attr} eq 'Tags' ) { } elsif ( $term->{attr} eq 'Tags' ) {
$fields .= ', (SELECT Name FROM Tags WHERE Id IN (SELECT TagId FROM Events_Tags WHERE Events_Tags.EventId=E.Id)) As Tags'; $fields .= ', (SELECT GROUP_CONCAT(Name) FROM Tags WHERE Id IN (SELECT TagId FROM Events_Tags WHERE Events_Tags.EventId=E.Id)) As Tags';
$self->{Sql} .= 'T.Id'; $self->{Sql} .= 'T.Id';
$from .= ' LEFT JOIN Events_Tags AS ET ON E.Id = ET.EventId LEFT JOIN Tags AS T ON T.Id = ET.TagId'; $from .= ' LEFT JOIN Events_Tags AS ET ON E.Id = ET.EventId LEFT JOIN Tags AS T ON T.Id = ET.TagId';
} elsif ( $term->{attr} =~ /^Monitor/ ) { } elsif ( $term->{attr} =~ /^Monitor/ ) {