[jifty-devel] Howto: Select Distinct in Jifty::DBI
Ruslan Zakirov
ruz at bestpractical.com
Tue Jun 1 15:31:09 EDT 2010
Hello, Jes.
I've written some tests and a new patch. That would be cool if you extend tests.
On Tue, Jun 1, 2010 at 9:59 PM, Jes <jjjesss at gmail.com> wrote:
> 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
>>
>>
> _______________________________________________
> jifty-devel mailing list
> jifty-devel at lists.jifty.org
> http://lists.jifty.org/cgi-bin/mailman/listinfo/jifty-devel
>
--
Best regards, Ruslan.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Jifty-DBI-02searches_distinct_values.t
Type: application/x-troff
Size: 5597 bytes
Desc: not available
URL: <http://lists.jifty.org/pipermail/jifty-devel/attachments/20100601/bdc70080/attachment.t>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: Jifty-DBI-collection_distinct_column_values_method.patch
Type: application/octet-stream
Size: 1126 bytes
Desc: not available
URL: <http://lists.jifty.org/pipermail/jifty-devel/attachments/20100601/bdc70080/attachment.obj>
More information about the jifty-devel
mailing list