簡體   English   中英

如何從 wordpress 表中獲取 SQL 查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM