Hallo SQL-Freunde,
die Abfrage "ist im Grunde(!)" gültig, aber bei manchen SQL-Konstellationen (zB.
only_full_group_by
) zickt's schonmal rum.
Grund ist, das dann zB.
GROUP
oder
SUM
Funktionen nicht auch noch zB.
MIN
MAX
etc. enthalten dürfen
oder
SUM(i.rgendwas)
nicht vor
GROUP
stehen darf usf. - Hab da auch schon Verzweiflung gehabt, ist aber meist zu lösen.
Müsste also in der Syntax (oder ähnlich) wie hier umgebaut werden:
https://stackoverflow.com/a/41887524 *
*(In dem Topic sind noch andere Lösungen enthalten,also eventuell ganz lesen)
Die angemeckerte Abfrage in der
listener.php
:
Code: Alles auswählen
$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
WHERE w.topic_id = ' . (int) $topic_id . '
AND w.user_id = u.user_id
GROUP BY w.user_id
ORDER BY w.date DESC';
$row_query = $this->db->sql_query_limit($query, $value);
Es wird sich letztlich über
DATABASE_NAME.w.counter_user
beschwert (doppelter Kontext von
w.counter_user
)
https://www.google.de/search?ei=ItwNYNe ... ted+column
----------------------------------------------
Mögliche Lösung (mal ins Blaue 1):
Code: Alles auswählen
$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
WHERE w.topic_id = ' . (int) $topic_id . '
AND w.user_id = u.user_id
GROUP BY w.user_id, SUM(w.counter_user)
ORDER BY w.date DESC';
$row_query = $this->db->sql_query_limit($query, $value);
Oder ins Blaue 2:
Code: Alles auswählen
$query = 'SELECT w.user_id, w.topic_id, w.counter_user, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
WHERE w.topic_id = ' . (int) $topic_id . '
AND w.user_id = u.user_id
GROUP BY w.user_id, w.counter_user
ORDER BY w.date DESC';
$row_query = $this->db->sql_query_limit($query, $value);
Blue Three:
Code: Alles auswählen
$query = 'SELECT w.user_id, w.topic_id, w.date, u.username, u.user_colour, u.user_id, u.user_avatar, u.user_avatar_type, u.user_avatar_height, u.user_avatar_width, u.user_type, SUM(w.counter_user) AS total
FROM ' . $this->whovisitedthistopic_table . ' w, ' . USERS_TABLE . ' u
WHERE w.topic_id = ' . (int) $topic_id . '
AND w.user_id = u.user_id
GROUP BY w.user_id
ORDER BY w.date DESC';
$row_query = $this->db->sql_query_limit($query, $value);