More elegant solution for "missing" has-many through ids?

I have LabGroup and LabDesc which have many through LabDescGroup. I'd
like to identify LabDescs which don't have a LabGroup. This works:

x = []
LabDescGroup.find( :all, :select => 'DISTINCT lab_desc_id' ).each{ |c|
x << c.lab_desc_id }
y = []
LabDesc.find( :all, :select => 'id' ).each{ |c| y << c.id }
notfound = x - y

But is there a more elegant way? It feels like I should be able to do
this entirely through queries, but I'm not seeing the solution.

This should do it:

LabDesc.find(:all, :conditions => ‘NOT EXISTS(SELECT * FROM lab_desc_groups WHERE lab_desc_id=lab_descs.id)’)

/Lasse

Lasse, you have my "SQL Guru of the Year Award." Many thanks,
Craig

He he he NICE :slight_smile:

/Lasse