Я хочу создать представление из таблиц wp_users и wp_usermeta, чтобы я мог запрашивать строки в представлении из внешнего приложения. Основные сведения об аутентификации хранятся в wp_users (например, имя пользователя, пароль, адрес электронной почты, идентификатор), а другие поля хранятся в парах ключ/значение в таблице wp_usermeta.Пользователи Wordpress и usermeta - объединение нескольких строк в одну таблицу в одну строку в другую таблицу
таблица wp_users структурирована следующим образом:
id | login | password | email
-----------------------------
1 | bsmith| abc123 | [email protected]
2 | jjones| def456 | [email protected]
таблица wp_usermeta структурирована следующим образом:
id | user_id | meta_key | meta_value
------------------------------------
1 | 1 | firstname| bob
2 | 1 | lastname | smith
3 | 1 | country | denmark
4 | 2 | firstname| jan
5 | 2 | lastname | jones
6 | 2 | country | germany
Я хочу, чтобы в конечном итоге с данными, как это, как вид MYSQL:
id | login | password | email | firstname | lastname | country
-----------------------------------------------------------------
1 | bsmith| abc123 | [email protected]| bob | smith | denmark
2 | jjones| def456 | [email protected]| jan | jones | germany
Я знаю, что мне нужно сделать хотя бы внутреннее соединение между wp_users и wp_usermeta, однако я также необходимо выполнить дополнительный запрос внутри wp_usermeta, чтобы объединить эти строки вместе.
Запрос У меня есть для получения ряда пользователей, конечно, мертв легко:
select u1.id, u1.login, u1.password, u1.email from wp_users u1
Запрос У меня есть для получения мета как строка это:
select m1.user_id, m1.meta_value as firstname, m2.meta_value as lastname, m3.meta_value as country
from wp_usermeta m1
join wp_usermeta m2 on (m1.user_id = m2.user_id and m2.meta_key = 'last_name')
join wp_usermeta m3 on (m2.user_id = m3.user_id and m3.meta_key = 'country')
where m1.meta_key = 'first_name'
Так как Я присоединяю эти два запроса вместе - данные u1 и строку, где u1.id = m1.userid?
Вы планируете поиск пользователей на основе некоторых свойств meta_value? если нет, вы можете просто сохранить атрибуты в одном сериализованном поле meta_value (json encoded или php serialized) – Ben
@Ben: нет, внешнее приложение будет подключаться для интерактивного запроса данных – frumbert