Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql2::错误:SELECT列表的表达式#5不在GROUP BY子句中,并且包含未聚合的列_Mysql_Group By - Fatal编程技术网

Mysql2::错误:SELECT列表的表达式#5不在GROUP BY子句中,并且包含未聚合的列

Mysql2::错误:SELECT列表的表达式#5不在GROUP BY子句中,并且包含未聚合的列,mysql,group-by,Mysql,Group By,我用2.4.0 ruby在Rails5应用程序中编写了这个查询 我的查询有问题,mysql抛出以下错误: 查询是: SELECT orders.code AS Order_code, customers.name AS Company_name, contacts.name AS Name, order_it.code AS Medium_Code, order_it.hidden_companies, GROUP_CONCAT(case when

我用2.4.0 ruby在Rails5应用程序中编写了这个查询 我的查询有问题,mysql抛出以下错误:

查询是:

SELECT
    orders.code AS Order_code,
    customers.name AS Company_name,
    contacts.name AS Name,
    order_it.code AS Medium_Code,
    order_it.hidden_companies,
    GROUP_CONCAT(case when contact_resource_types.code = 'mainphone' then
        contact_resources.value end SEPARATOR '|') AS Main_phone,
    GROUP_CONCAT(case when contact_resource_types.code = 'mainfax' then 
        contact_resources.value end SEPARATOR '|') AS Main_fax,
    GROUP_CONCAT(case when contact_resource_types.code = 'mainemail' then 
        contact_resources.value end SEPARATOR '|') AS Main_email,
    GROUP_CONCAT(case when contact_resource_types.code = 'mainsite' then
        contact_resources.value end SEPARATOR '|') AS Main_site,
    GROUP_CONCAT(case when contact_resource_types.code = 'procell' then
        contact_resources.value end SEPARATOR '|') AS Pro_cell,
    GROUP_CONCAT(case when contact_resource_types.code = 'cell' then    
        contact_resources.value end SEPARATOR '|') AS Cell,
    contact_postal_addresses.street_1 AS Street_1,
    cities.name AS City,
    regions.name AS Region
FROM 
    contacts
    INNER JOIN contact_postal_addresses 
        ON contact_postal_addresses.contact_id =  contacts.id
    INNER JOIN cities 
        ON cities.id = contact_postal_addresses.city_id
    INNER JOIN regions 
        ON regions.id = cities.region_id
    INNER JOIN orders
        ON order_id = orders.id
    INNER JOIN contacts AS customers 
        ON customers.id = orders.customer_contact_id
    INNER JOIN 
    (SELECT DISTINCT
        order_items.order_id,  
        order_items.hidden_companies, media.code 
    FROM 
        order_items 
        INNER JOIN media
            ON order_items.medium_id = media.id 
    WHERE 
        media.id = 76
    ) AS order_it ON order_it.order_id = orders.id
    LEFT OUTER JOIN contact_resources 
        ON contact_resources.contact_id = contacts.id
    INNER JOIN contact_resource_types 
        ON contact_resources.contact_resource_type_id = contact_resource_types.id
WHERE
    contacts.listing = 1
    and orders.country_id = 5
    and orders.order_status_id = 1
    and contact_resource_types.code in   
      ('mainphone','mainfax','mainemail','mainsite','procell','cell')
GROUP BY
    contacts.id
ORDER BY
    contacts.updated_at ;

为了安全起见,您应该使用
中所有未聚合的列
排序依据
进行分组。[拥有所有相关表的完整定义可能有助于简化查询]

即:

GROUP BY
     contacts.id
    ,Order_code
    ,Company_name
    ,Name
    ,Medium_Code
    ,hidden_companies
    ,Street_1
    ,City
    ,Region
    ,contacts.updated_at      
ORDER BY
    contacts.updated_at
GROUP BY
     contacts.id
    ,Order_code
    ,Company_name
    ,Name
    ,Medium_Code
    ,hidden_companies
    ,Street_1
    ,City
    ,Region
    ,contacts.updated_at      
ORDER BY
    contacts.updated_at