[Dbix-class] selecting records with no links-to
Wolfgang Kinkeldei
wolfgang at kinkeldei.de
Fri Jun 14 12:52:51 GMT 2013
Hi,
Am 14.06.2013 um 13:31 schrieb Dave Howorth:
> My brain is feeling fried and is failing to solve a simple puzzle.
>
> Using the standard table 'artist' which has a primary key 'artistid'.
>
> And the other table 'cd' that has a link to artists, via a foreign key
> 'artist'. There may be more than one CD associated with a single artistid.
>
> I want a resultset containing all artists which have NO associated CD.
>
> What's the appropriate way to select this resultset?
one way would be to shrink your resultset with '-not_in'. However, "NOT IN" in SQL is sometimes very inefficient.
my $artists_with_cd =
$schema->resultset('CD')->get_column('artist')->as_query;
my @artists_without_cd =
$schema->resultset('Artist')->search( { artistid => { -not_in => $artists_with_cd } } )->all;
Best,
Wolfgang Kinkeldei
--
' /\_/\ ' .print[split??,"".(($/=q|Cms)+-03467:;<=|)=~tr!C-z -B! -z!)x
'( o.o )' .$/]->[hex]foreach split qr<>,qq+1ecd039ad65b025b8063475b+||
' > ^ < ' .q<!-- Wolfgang Kinkeldei - wolfgang at kinkeldei dot de -->
More information about the DBIx-Class
mailing list