5

MySQL を更新してから、次のクエリが失敗することに気付きました

SELECT u.*, p.name as plan, COUNT(u.id) as totalprojects FROM users u LEFT JOIN plans p ON p.id = access LEFT JOIN maps m ON m.user_id = u.id WHERE u.email = 'john@doe.com'

GROUP BY を使用しない集計クエリでは、SELECT リストの式 #1 に集計されていない列 'kontakt.u.id' が含まれています。これは sql_mode=only_full_group_by と互換性がありません

エラーをソートするためにこのクエリを修正する方法を知っている人はいますか?

4

3 に答える 3

2

次の 2 つのいずれかを行うことができます。

1) select 句のすべてが集約されるようにクエリを変更します。このようなもの

SELECT u.email, p.name as plan, COUNT(u.id) as totalprojects FROM users u LEFT JOIN plans p ON p.id = access LEFT JOIN maps m ON m.user_id = u.id WHERE u.email = 'john@doe.com' group by u.email;

2) SQL モードを変更して、mysql がクエリを実行できるようにします。このようなもの

[mysqld]
sql_mode = "NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

my.cnf ファイルに。

これにより、さまざまな sql_mode オプションが設定されることに注意してください。ここでそれらについて読むことができます: http://dev.mysql.com/doc/refman/5.7/en/sql-mode.html

于 2016-10-19T15:56:14.643 に答える