Недопустимое соединение ошибки сопоставлений в MySql

Необходимо полностью просмотреть это приложение. Это содержит много шаблонов и лучших методов, которые необходимо применить.

шаблоны & Проводник Руководства методов

41
задан Rikesh 27 June 2014 в 11:08
поделиться

5 ответов

Проверьте тип сопоставления каждой таблицы и убедитесь, что они имеют одинаковое сопоставление.

После этого проверьте также тип сопоставления каждого поля таблицы, которое вы используете в работе.

Я столкнулся с той же ошибкой, и эти уловки со мной работают.

18
ответ дан 27 November 2019 в 00:11
поделиться

Убедитесь, что ваша версия MySQL поддерживает подзапросы (4.1+). Затем вы можете попробовать переписать свой запрос примерно так:

SELECT ratings.username, (SUM(rating)/COUNT(*)) as TheAverage, Count(*) as TheCount FROM ratings, users 
WHERE ratings.month='Aug' and ratings.username = users.username
AND users.gender = 1
GROUP BY ratings.username
HAVING TheCount > 4 ORDER BY TheAverage DESC, TheCount DESC
-2
ответ дан 27 November 2019 в 00:11
поделиться
HAvING TheCount > 4 AND username IN (SELECT username FROM users WHERE gender=1)

, но почему я отвечаю, вы не проголосовали за мой правильный ответ :)

-1
ответ дан 27 November 2019 в 00:11
поделиться
SELECT  username, AVG(rating) as TheAverage, COUNT(*) as TheCount
FROM    ratings
        WHERE month='Aug'
        AND username COLLATE latin1_general_ci IN
        (
        SELECT  username
        FROM    users
        WHERE   gender = 1
        )
GROUP BY
        username
HAVING
        TheCount > 4
ORDER BY
        TheAverage DESC, TheCount DESC;
0
ответ дан 27 November 2019 в 00:11
поделиться
  • Убедитесь, что ваш столбец users.gender имеет значение INTEGER.
  • Попробуйте: изменить таблицу, пользователи конвертируют в набор символов latin1 collate latin1_swedish_ci;
1
ответ дан 27 November 2019 в 00:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: