Если я правильно понимаю, вы хотите отфильтровать результат только для тех, для которых в wp_usermeta
есть строка с meta_key='kennung_produzent'
и meta_value = 'Prod'
То, что делает этот запрос, отличается, потому что вы фильтруете по pm.meta_value = 'Prod'
, поэтому вы удаляете все строки, потому что он также ожидает, что значение будет равно Prod, когда pm.meta_key = 'billing_email'
, а когда pm.meta_key = 'nickname'
и так далее.
Не зная ваших данных и основываясь на вашем последнем комментарии, предполагая, что у вас более одной строки на пользователя с meta_key = "kennung_produzent", я бы сказал, что то, что вы хотите сделать, больше похоже на
select * from (
SELECT p.ID,
p.user_login,
p.user_registered,
p.display_name,
max( CASE WHEN pm.meta_key = 'nickname' and p.ID = pm.user_id THEN pm.meta_value END ) as Nickname,
max( CASE WHEN pm.meta_key = 'billing_email' and p.ID = pm.user_id THEN pm.meta_value END ) as email,
max( CASE WHEN pm.meta_key = 'billing_first_name' THEN pm.meta_value END ) as Vorname,
max( CASE WHEN pm.meta_key = 'billing_last_name' THEN pm.meta_value END ) as Nachname,
max( CASE WHEN pm.meta_key = 'billing_phone' THEN pm.meta_value END ) as Telefon,
max( CASE WHEN pm.meta_key = 'billing_postcode' THEN pm.meta_value END ) as PLZ,
max( CASE WHEN pm.meta_key = 'billing_address_1' THEN pm.meta_value END ) as Strasse,
max( CASE WHEN pm.meta_key = 'billing_city' THEN pm.meta_value END ) as Ort,
max( CASE WHEN pm.meta_key = 'kennung_produzent' THEN pm.meta_value END ) as Kennung
from
wp_users p
join wp_usermeta pm on p.ID = pm.user_id
group by
p.ID
) a
where Kennung LIKE "Prod"
производительность этого запроса может быть очень плохой, но, пожалуйста, дайте мне знать, если он делает то, что вам нужно, по крайней мере, у нас есть отправная точка