I managed to work out the above problem using Playa 4 (thank you Brandon!)
First of all it was important that the log entries were in order so I had to call this first. But I could only call those that had a specific status so I decided to embed a template and pass the entry_id of the parent entry (the note) only if the child entry (the wine) had a Status of “Production”.
<ul>
{exp:channel:entries channel="log_entries" orderby="date" sort="desc" dynamic="no"}
{exp:playa:children field="log_vintage" orderby="date" sort="asc" show_future_entries="yes" status="Production"}
{embed="_functions/_log_entry_notes" title="{title}" entry_id="{parent:entry_id}"}
{/exp:playa:children}
{/exp:channel:entries}
</ul>
Then the embed takes the entry_id (so we don’t get crap loads of queries) ~
{exp:channel:entries entry_id="{embed:entry_id}" show_future_entries="yes" dynamic="no"}
{embed:title}
Stuff…
{/exp:channel:entries}
The only negative of this code is that every note needs to be checked in order to test the Status of the child entry. If anyone can do this in SQL in a more efficient manner then I’d love to see that.