ONLY_FULL_GROUP_BY私は次のクエリ(UPDATED下記参照)があります。のMySQL =
SELECT
i0_.id AS id_0,
i0_.address AS address_1,
i1_.name AS name_2,
c2_.name AS name_3,
c3_.code AS code_4,
l4_.iso AS iso_5,
c5_.id AS id_6,
c6_.name AS name_7,
i7_.identifier AS identifier_8
FROM institutions i0_
LEFT JOIN institution_languages i1_ ON (i1_.institution_id = i0_.id)
LEFT JOIN countries c3_ ON (c3_.id = i0_.country_id)
LEFT JOIN country_languages c2_ ON (c2_.country_id = c3_.id)
LEFT JOIN country_spoken_languages c8_ ON (c8_.country_id = c3_.id)
LEFT JOIN cities c5_ ON (c5_.id = i0_.city_id)
LEFT JOIN city_languages c6_ ON (c6_.city_id = c5_.id)
LEFT JOIN languages l4_ ON (l4_.id = i1_.language_id)
LEFT JOIN institution_types i7_ ON (i0_.institution_type_id = i7_.id)
WHERE c8_.is_primary = 1
AND c8_.language_id = l4_.id
AND c2_.language_id = 546
AND i7_.identifier = "work_place"
GROUP BY id_6 #here is the issue...
UPDATEDクエリ
SELECT
i0_.id AS id_0,
i0_.address AS address_1,
i1_.name AS name_2,
c2_.name AS name_3,
c3_.code AS code_4,
c4_.name AS name_5,
i5_.identifier AS identifier_6
FROM institutions i0_
LEFT JOIN institution_languages i1_ ON (i1_.institution_id = i0_.id)
LEFT JOIN countries c3_ ON (c3_.id = i0_.country_id)
LEFT JOIN country_languages c2_ ON (c2_.country_id = c3_.id AND c2_.language_id = ?)
LEFT JOIN country_spoken_languages c6_ ON (c6_.country_id = c3_.id AND c6_.language_id = ? AND c6_.is_primary = ?)
LEFT JOIN city_languages c4_ ON (c4_.city_id = i0_.city_id)
LEFT JOIN institution_types i5_ ON (i0_.institution_type_id = i5_.id)
WHERE i5_.identifier = ?
GROUP BY i0_.city_id
このクエリは、I GROUP_BYで問題が発生しています解決方法がわからない:
10 55 - SELECTリストの式#1がGROUP BY句になく、クラスタ化されていないカラム 'database.i0_.id'を含んでいます。
GROUP BY句のカラムに依存します。これはsql_modeのと互換性 ある=
ONLY_FULL_GROUP_BY私は、これは簡単にONLY_FULL_GROUP_BYをオフに設定することで解決することができます知っているが、私はそれを動作させるために私のクエリに何を行うことができ、適切ではなく、私のサーバー上でのMySQLの設定を変更すること? previuos versioneで
'c5_.id '以外の' SELECT'にすべての列を集約関数に入れることができます。あなたが得ているエラーは、これを行うように指示するものです。他の列も削除することができます。 –
あなたの左のジョインはあなたの 'where'句がそれらを内側のジョインに変えるので余分です。 –