Query using left join issue

select LSD.lsd,count(reading.infrastructure.id),infratype.infrastructureType from cpreading$LSD LSD join cpreading$Infrastructure infra 
               left join cpreading$InfrastructureType infratype
               left join cpreading$CPReadingEntry reading where LSD.id = infra.lsd.id and infratype.id = infra.infrastructureType.id and infra.id = reading.infrastructure.id
                group by LSD.lsd,infratype.infrastructureType

By using this query I am getting output as
[01-20]01-20-39-7W5 2 Casing
78 1 Casing
But I want to get excepted result as
78 1 Casing
[01-20]01-20-38-7W5 0 Rectifier
[01-20]01-20-39-7W5 2 Casing
[01-20]01-20-38-7W5 0 PipeLine

Shall we use left join query in datamanager.

datamanager.loadValues(left joinquery)

select LSD.lsd,count(reading.infrastructure.id),infratype.infrastructureType from cpreading$LSD LSD join cpreading$Infrastructure infra join cpreading$InfrastructureType infratype left join cpreading$CPReadingEntry reading where LSD.id = infra.lsd.id and infratype.id = infra.infrastructureType.id and infra.id = reading.infrastructure.id and reading.infrastructure.id is NULL
group by LSD.lsd,infratype.infrastructureType

By using this query I am getting output as
[01-20]01-20-39-7W5 2 Casing
78 1 Casing
But I want to get excepted result as
78 1 Casing
[01-20]01-20-38-7W5 0 Rectifier
[01-20]01-20-39-7W5 2 Casing
[01-20]01-20-38-7W5 0 PipeLine

Give any ideas on that

Please model your problem on entities and relations that can be understood, like customers/orders, cats/kittens, pets/vets etc.
We have no idea what your LSD or Rectifier is and it complicates understanding a lot.

I have got solution for that problem