Query to get number of items from different table reference in another table I have 5 tables which are 

- Project(PK Project_ID), 
- Bottles (PK Bottle_ID, FK Project_ID), 
- Plastics (PK Plastic_ID, FK Project_ID), 
- Glasses (PK Glass_ID,FK Project_ID) and 
- Cups (PK Cup_ID, FK Project_ID)


How can I get one SQL query to return the number of Bottles ,Plastics , Glasses  and Cup per Project,  where One Project has many Bottles ,Plastics , Glasses  and Cup ?
Something like this will work, though is not necessarily efficient on all DB engines:

select Project_ID,
count(distinct Bottle_ID) bottlesCount,
count(distinct Plastic_ID) plasticsCount,
count(distinct Glass_ID) glassesCount,
count(distinct Cup_ID) cupsCount
from Project
left join Bottles using (Project_ID)
left join Plastics using (Project_ID)
left join Glasses using (Project_ID)
left join Cups using (Project_ID)
group by Project_ID;