utf8_unicode_ci utf8_general_ci sqlstate latin1_swedish_ci illegal hy000 for error collations code and mysql phpmyadmin mysql-error-1267

utf8_general_ci - Únase a la consulta en MySQL



mysql illegal mix of collation (2)

Tengo dos tablas: miembros y renovaciones

Las dos tablas tienen un campo llamado memberid que vincula las dos tablas de datos juntas. Estoy intentando construir una consulta que extraerá el nombre y el apellido de la tabla de miembros para los datos que se mantienen en la tabla de renovaciones. He intentado utilizar la consulta a continuación, que se basa en algunos ejemplos que he buscado.

SELECT members.memberfirst, members.membersurname, members.memberid, renewals.account_name, renewals.memberid FROM members, renewals WHERE renewals.memberid=members.memberid

El error que recibo al intentar ejecutar esto en phpMyAdmin:

#1267 - Illegal mix of collations (utf8_unicode_ci,IMPLICIT) and (utf8_general_ci,IMPLICIT) for operation ''=''


Deberías usar INNER JOIN . Eche un vistazo aquí: http://www.postgresql.org/docs/8.1/interactive/queries-table-expressions.html
Incluso si se trata de PostgreSQL, las consultas son las mismas para MySQL y los ejemplos son realmente buenos.

SELECT members.memberfirst, members.membersurname, members.memberid, renewals.account_name FROM members INNER JOIN renewals ON members.memberid = renewals.memberid

o puede usar USING (memberid) lugar de ON members.memberid = renewals.memberid


Una ligera modificación si desea mostrar el nombre del miembro en una sola columna

SELECT CONCAT(members.memberfirst, " ", members.membersurname) as memberName, members.memberid, renewals.account_name, renewals.memberid FROM members INNER JOIN renewals WHERE renewals.memberid=members.memberid