Left Join Question - Mailing list pgsql-sql

From Ryan Wells
Subject Left Join Question
Date
Msg-id 52F2AD70C422474B857FC9E3F7B62539028DB1E8@exchange.DOCS.COM
Whole thread Raw
Responses Re: Left Join Question
Re: Left Join Question
Re: Left Join Question
List pgsql-sql

While looking through our data layer code today, I ran across this query:

 

SELECT

tasks.*,

clients.FirstName,

clients.LastName,

clients.MiddleInitial,

iteminfo.CreatedBy,

iteminfo.StationId,

iteminfo.CreatedDate,

changelog.LastModified,

changelog.LastModifiedBy,

changelog.LastModifiedAt,

ticklers.Due,

ticklers.Reminder

 

FROM tasks

 LEFT JOIN clients ON tasks.ClientId = clients.ClientId

  LEFT JOIN iteminfo ON tasks.Id = iteminfo.ItemId

   LEFT JOIN changelog ON tasks.Id = changelog.ItemId

    LEFT JOIN ticklers ON tasks.Id = ticklers.RelatedId

 

WHERE tasks.Id = '123456';

 

(I've cleaned it up so it's  easier to read.)

 

The basic data structure is that we have a todo list that contains a list of tasks which may or may not be associated with clients, items, log entries, or ticklers (scheduled reminders). 

 

The query works as intended:  it returns a result-set with all the necessary data to display in the todo list.   The performance is not a major concern, although it can be slow for large lists.

 

Since it works, my question is really more about principles:  Given that each of the tables in question will contain tens of thousands of rows, is a nested join really the best way to approach this?

 

Thanks!

Ryan

pgsql-sql by date:

Previous
From: Gerardo Herzig
Date:
Subject: Re: custom serial number
Next
From: ries van Twisk
Date:
Subject: Re: Left Join Question