加入MySQL中的查询

时间:2010-08-24 16:24:17

标签: mysql phpmyadmin mysql-error-1267

我有两个表:成员和续订

这两个表有一个名为memberid的字段,它将两个数据表链接在一起。我正在尝试构建一个查询,该查询将从成员表中提取更新表中保存的数据的名字和姓氏。我已经尝试使用下面的查询,该查询基于我查找的一些示例。

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

尝试在phpMyAdmin中运行时出现的错误:

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

alt text

2 个答案:

答案 0 :(得分:2)

您应该使用INNER JOIN。看看这里:http://www.postgresql.org/docs/8.1/interactive/queries-table-expressions.html
即使它适用于PostgreSQL,MySQL的查询也是一样的,并且示例非常好。

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

或者您可以使用USING (memberid)代替ON members.memberid = renewals.memberid

答案 1 :(得分:0)

如果要在单个列中显示成员的名称,请稍作修改

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