Select wp_users.ID
, wp_users.user_login
, wp_users.user_email
, wp_users.user_nicename
, Min( Case When wp_usermeta.meta_key = 'first_name' Then wp_usermeta.meta_value End ) As first_name
, Min( Case When wp_usermeta.meta_key = 'last_name' Then wp_usermeta.meta_value End ) As last_name
, Min( Case When wp_usermeta.meta_key = 'address' Then wp_usermeta.meta_value End ) As address
, Min( Case When wp_usermeta.meta_key = 'dob' Then wp_usermeta.meta_value End ) As dob
From wp_user
Join wp_usermeta
On wp_usermeta.user_id = wp_user.ID
Where Exists (
Select 1
From wp_usermeta As Meta1
Where Meta1.user_id = wp_user.id
And Meta1.meta_key = 'wp_user_level'
And Meta1.meta_value = '0'
)
And wp_usermeta.meta_key In('first_name','last_name','address','dob')
Group By wp_users.ID
, wp_users.user_login
, wp_users.user_email
, wp_users.user_nicename
För det första, som andra har nämnt, är en av anledningarna till att den här frågan är så besvärlig att skriva att du måste använda en EAV-struktur. Konceptet med en "meta"-tabell är verkligen ett anathema för relationsdesign. För det andra, för att få ut information ur en EAV, måste du skapa vad som kallas en korstabellsfråga där du bygger de kolumner du vill ha i din fråga. Generellt sett är relationsdatabaser inte designade för kolumngenerering i farten som jag gör i min lösning och krävs för EAV.