For all the DBQL tables, CollectTimeStamp is captured at different points in the query processing cycle. Do not use the CollectTimeStamp field value to compare tables for this reason.
Instead, select one or more queries based on the DBQLogTbl.StartTime field or DBQLogTbl.FirstRespTime and then join that row with the other tables based on the QueryID field.
Depending on when the DBQL caches are written, all the rows for a specific QueryID may not be flushed to the disk at the same time. This is also true when you load DBQL rows off DBC space and onto temporary, history, or archive database. Some rows for a specific QueryID may be moved to your database while some will subsequently be logged for the DBC DBQL tables.