[prev in list] [next in list] [prev in thread] [next in thread]
List: mysql
Subject: Re: query question
From: Adrian Bruce <abruce () stvincent ! ac ! uk>
Date: 2007-10-31 14:37:26
Message-ID: 47289326.4020809 () stvincent ! ac ! uk
[Download RAW message or body]
there should be no space between function name and () i.e. it should be
group_concat(hosts.name)
(unless you have the sql mode IGNORE_SPACE set)
Andrey Dmitriev wrote:
> I knew I've seen this error before ☺
>
> Thanks a lot.
>
> -andrey
>
> ________________________________________
> From: Peter Brawley [mailto:peter.brawley@earthlink.net]
> Sent: Tuesday, October 30, 2007 1:55 AM
> To: Andrey Dmitriev
> Cc: mysql@lists.mysql.com
> Subject: Re: query question
>
>
>> Thanks.. It doesn't seem to work though.. I did verify I am on 5.0
>>
> Try lose the space after group_concat.
>
> PB
>
> Andrey Dmitriev wrote:
> Thanks.. It doesn't seem to work though.. I did verify I am on 5.0
>
>
> mysql> select service_names.name as 'Service',
> -> group_concat (hosts.name)
> -> from monarch.hosts as hosts, monarch.services as services,
> monarch.service_names as service_names
> -> where
> -> hosts.host_id=services.host_id
> -> and service_names.servicename_id=services.servicename_id
> -> group by service_name.name
> ->
> ->
> -> ;
> ERROR 1305 (42000): FUNCTION mysql.group_concat does not exist
>
> -----Original Message-----
> From: Baron Schwartz [mailto:baron@xaprb.com]
> Sent: Monday, October 29, 2007 4:00 PM
> To: Andrey Dmitriev
> Cc: mysql@lists.mysql.com
> Subject: Re: query question
>
> Hi,
>
> Andrey Dmitriev wrote:
>
> This is kind of achievable in Oracle in either sqlplus mode, or with
>
> the
>
> use of analytical functions. Or in the worst case by writing a
>
> function.
>
> But basically I have a few tables
> Services, Hosts, service_names
>
>
> And I can have a query something like
>
>
> select service_names.name as 'Service', hosts.name as 'Host'
> from hosts, services, service_names
> where
> hosts.host_id=services.host_id
> and service_names.servicename_id=services.servicename_id
> order by service_names.name
>
> Which outputs something like
>
> | SSH | mt-ns4
>
>
>
> |
> | SSH | tsn-adm-core
>
>
>
> |
> | SSH | tsn-juno
>
>
>
> |
> | SSH | tsn-tsn2
>
> However, the desired output is one line per service name, so something
> like
>
> | SSH | mt-ns4,
> tsn-adm-core, tsn-juno, tsn-tsn2 |
>
>
> Can this be done w/o writing procedural code in mysql?
>
>
> Yes. Have a look at GROUP_CONCAT().
>
> Baron
>
>
>
>
>
>
>
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/mysql?unsub=mysql-marcsub@progressive-comp.com
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic