[jifty-devel] Howto: Select Distinct in Jifty::DBI
Jes
jjjesss at gmail.com
Tue Jun 1 13:59:44 EDT 2010
Hi Ruslan:
It seems there is some bug in the patch or in my code.
I have MYSQL table called "celda" and "Celda" model with this columns
(in fact there are more columns but for this example...):
"ine" "poblacion"
So, for example I could have this records:
ine poblacion other_column
14000 a1 1
14000 a1 2
14001 b1 3
14001 b1 4
14002 c1 5
14002 c1 6
And I coded something like in View.pm:
8<-------------------------------------------------------
my $celdas = new ImpactoWeb::Model::CeldaCollection;
my @listofine = $celdas->distinct_column_values(
column => 'ine'
);
if ( @listofine ) {
table {
attr { class => "datatable" } row {
th { "INE" };
th { "Municipio" };
};
foreach my $ine (@listofine)
{
#find cells with that INE
$celdas->limit(
column => 'ine',
value => $ine
);
my $celda = $celdas->next;
row {
cell { $ine };
cell { $celda->poblacion };
};
}
}; #table
}
8<-------------------------------------------------------
This should show (that's my intention) something like:
ine poblacion
14000 a1
14001 b1
14002 c1
but I got this error:
WARN - DBD::mysql::db selectcol_arrayref failed: Unknown table 'main' in field list at /usr/local/share/perl/5.10.1/Jifty/DBI/Collection.pm line 959, <DATA> line 16.
It seems something regarding this piece of code in your patch:
my $column = 'main.'. $args{'column'}; <<<<<<<<<<<<<<<<<< 'main.'
$query_string = 'SELECT DISTINCT '. $column . $query_string;
Any idea?
Thanks in advance,
Jes
El Tue, 1 Jun 2010 17:47:53 +0400
Ruslan Zakirov <ruz at bestpractical.com> escribió:
> Hello, Jes.
>
> I believe it's usable operation and deserves a method in collection.
> In the attachment you can find patch for Jifty::DBI that demonstrates
> how method will probably look. I didn't test the patch even if it
> compiles or not.
>
> If it works for you and other people have no objections then I can
> push it into trunk.
>
> On Sat, May 29, 2010 at 3:09 PM, Jes <jjjesss at gmail.com> wrote:
> > El Fri, 28 May 2010 12:28:36 -0400
> > Jesse Vincent <jesse at bestpractical.com> escribió:
> >
> >>
> >> Jes,
> >>
> >> What are you actually trying to do?
> >>
> >> Best,
> >> Jesse
> >>
> >> On Fri 28.May'10 at 11:19:51 +0200, Jes wrote:
> >> > Hi all:
> >> >
> >> > How can I do a query like:
> >> >
> >> > SELECT DISTINCT myfield FROM mytable
> >> >
> >> > ???
> >> >
> >> > I'm used to deal with records and collections but I can't figure
> >> > out how this can be coded (first time I have to deal with).
> >> >
> >> > Thanks in advance,
> >> >
> >> > Jes
> >> > _______________________________________________
> >> > jifty-devel mailing list
> >> > jifty-devel at lists.jifty.org
> >> > http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
> >> _______________________________________________
> >> jifty-devel mailing list
> >> jifty-devel at lists.jifty.org
> >> http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
> >
> >
> > Hi:
> >
> > Well, I have several models. One of them has a lot of columns. There
> > are a lot of records with one column in common. This column is
> > called "ine", and the model is called "Celda". So, for example, to
> > find all records for a particular value of "ine" I'd do:
> >
> > my $cells = ImpactoWeb::Model::CeldaCollection->new;
> > $cells->limit(
> > column => 'ine',
> > value => $ine
> > );
> > while ( my $cell = $cells->next )
> > {
> > .... rest of the code...
> > }
> >
> > As well I need to find all different values of column "ine". In SQL
> > I'd do:
> >
> > SELECT DISTINCT ine FROM Celda;
> >
> > or something similar. I'm only want to get an array, for example,
> > with all different values of "ine".
> >
> > Thanks, bye
> >
> > Jes
>
>
More information about the jifty-devel
mailing list