DataTables are represented with the syntax %DataTable[RowIndex][ColumnIndex]%.
So, you have a bit of work yet to get what you want. First, lets get the body of what you to send into a table variable or a text variable.
Set Variable %LoopMax% to %QueryResult2.RowsCount% #we know how many rows the table holds
Create New List %EmailBody% #we will add to this list per email and then clear it before the next email
For Each %CurrentItem% in New Input #you already have this command
Loop starting at 0 to %LoopMax% increment of 1 #we are going to loop through each row of QueryResult2
If %QueryResult2[LoopIndex][6]% = %CurrentItem%
Add %QueryResult2[LoopIndex]% to List %EmailBody% #add the row to the email body list
#this will loop through all rows adding each row to %EmailBody% if the email matches
End Loop
Send Email #update the email with %EmailBody% instead of %QueryResult2%
Clear List %EmailBody% #need to clear the list so it starts over for the next "For Each"
End For Each
The logic works, the only thing I am not sure on is if you can add the entire row %QueryResult2[LoopIndex]% to a list item. It may be that you have to create a datatable instead of a list, and then write each [row][column] to the corresponding row column of your new datatable, then you could post the whole new datatable to the email. The logic would be the same, the execution would be more difficult.
Best of luck!