[Dbix-class] help building query w/ ->search() or using arbitrary select?
Matt S Trout
dbix-class at trout.me.uk
Wed Aug 9 20:30:28 CEST 2006
George Hartzell wrote:
> George Hartzell writes:
> > [...]
> > Holy Mackerel:
> >
> > my $rs = $s->resultset('...')->search({
> > 'node_count(me.id)' => 2,
> > 'control_count(me.id)' => 1,
> > 'attrs.name' => 'NodeType',
> > 'attrs.value' => 'Protein',
> > 'attrs_2.name' => 'Organism',
> > 'attrs_2.value' => 'Homo sapiens',
> > 'attrs_3.name' => 'NodeType',
> > 'attrs_3.value' => 'Protein',
> > 'attrs_4.name' => 'Organism',
> > 'attrs_4.value' => 'Homo sapiens',
> > 'rncbts.value' => 'Protein',
> > 'rncbts.count' => 2,
> > },
> > {
> > join => [{nodes =>
> > ['attrs', 'attrs']},
> > {nodes =>
> > ['attrs', 'attrs']},
> > 'rncbts',
> > ]
> > },
> > );
> >
> >
> > which says that attrs and attrs_2 belong_to one node, and attrs_3 and
> > attrs_4 belong to the other.
> >
> > wow. yeesh.
> > [...]
>
> As it stands above, it finds <rn>'s that have two nodes, but it
> happily just uses one of them to meet the constraints on attrs/attrs_1
> then uses the same node to satisfy the constraints on attrs_3/attrs_4.
>
> I need nodes and nodes_2 to be different. e.g. my hand coded sql said
> something like nodes.id != nodes_2.id.
>
> I'm not sure where to express that conststraint.
>
Stick
'nodes.id' => \"!= nodes_2.id"
on the end of your WHERE clause hashref
More information about the Dbix-class
mailing list