、GROUP BYではありません、私は私のクエリとMySQLとの問題を抱えているが、次のエラーがスローされます。MySQLのエラー:SELECTリストは句
#1055 - Expression #66 of SELECT list is not in GROUP BY clause and contains nonaggregated column 's.status' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
クエリは次のとおりです。
select p.*,
pd.*,
m.*,
IF(s.status, s.specials_new_products_price, null) as specials_new_products_price,
IF(s.status, s.specials_new_products_price, p.products_price) as final_price
FROM products p
LEFT JOIN specials s ON p.products_id = s.products_id
LEFT JOIN manufacturers m using(manufacturers_id) ,
products_description pd,
categories c,
products_to_categories p2c
WHERE p.products_view = 1
AND p.products_status = 1
AND p.products_archive = 0
AND c.virtual_categories = 0
AND p.products_id = pd.products_id
AND p.products_id = p2c.products_id
AND p2c.categories_id = c.categories_id
AND pd.language_id = 1
GROUP BY p.products_id;
私にそれを打つ!素晴らしい説明も。 –
私はSQL_CALC_FOUND_ROWS s.products_idを選択するか、SQL_CALC_FOUND_ROWS count(p.products_id)を選択するかのように異なる方法で試しましたが、解決策はありませんこれを書き直す考えですか? – kurama
@kuramaグループ化している列を集計しようとしています。 Billが説明しているように、選択リストに含まれる他の列が 'GROUP BY'節に含まれているか、集約されているか、グループ化された列に依存してグループ化が正しく機能するようにする必要があります。たとえば、 'p.products_id、s.status、sum(p.products_price)、...をp.products_id、s.status'によってプロダクトpグループから選択します。 –