[英]How can I get a SQL Query from wordpress tables
我有一個 sql 查詢,但沒有找到正確的解決方案。
查詢有效,但它沒有顯示wp_usermeta
表的列,只顯示wp_users
的列。
如果我刪除where
子句,將顯示所有列的所有值的行,但我只需要取決於meta_value = "Prod"
列中的 meta.key = 'kennung_produzent' 的行
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' and p.ID = pm.user_id THEN pm.meta_value END ) as Vorname,
max( CASE WHEN pm.meta_key = 'billing_last_name' and p.ID = pm.user_id THEN pm.meta_value END ) as Nachname,
max( CASE WHEN pm.meta_key = 'billing_phone' and p.ID = pm.user_id THEN pm.meta_value END ) as Telefon,
max( CASE WHEN pm.meta_key = 'billing_postcode' and p.ID = pm.user_id THEN pm.meta_value END ) as PLZ,
max( CASE WHEN pm.meta_key = 'billing_address_1' and p.ID = pm.user_id THEN pm.meta_value END ) as Strasse,
max( CASE WHEN pm.meta_key = 'billing_city' and p.ID = pm.user_id THEN pm.meta_value END ) as Ort,
max( CASE WHEN pm.meta_key = 'kennung_produzent' and p.ID = pm.user_id THEN pm.meta_value END ) as Kennung
from
wp_users p
join wp_usermeta pm on p.ID = pm.user_id
where
pm.meta_value = 'Prod'
group by
p.ID
如果我理解正確,您只想將結果過濾為wp_usermeta
中存在meta_key='kennung_produzent'
和meta_value = 'Prod'
行
該查詢所做的是不同的,因為您正在按pm.meta_value = 'Prod'
進行過濾,因此您要刪除所有行,因為它還期望在pm.meta_key = 'billing_email'
和pm.meta_key = 'nickname'
時值是 Prod 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"
此查詢的性能可能非常糟糕,但請讓我知道它是否滿足您的需求,因此至少我們有一個起點
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.