Запрос на присоединение в MySQL - PullRequest
3 голосов
/ 24 августа 2010

У меня есть две таблицы: участники и обновления

В этих двух таблицах есть поле 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 ]

2 голосов
/ 24 августа 2010

Вы должны использовать 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

0 голосов
/ 26 мая 2016

Небольшое изменение, если вы хотите отобразить имя члена в одном столбце

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
...