Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL заявка - Присъединете данни въз основа на два фактора, след което персонализирайте начина, по който данните се сортират въз основа на стойности

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

Първо, както други споменаха, една от причините тази заявка да е толкова тромава за писане е, че трябва да използвате EAV структура. Концепцията за "мета" таблица е наистина анатема за релационния дизайн. Второ, за да извлечете информация от EAV, трябва да създадете това, което се нарича кръстосана заявка, където изграждате колоните, които искате във вашата заявка. Като цяло релационните бази данни не са предназначени за генериране на колони в движение, както правя в моето решение и е необходимо за EAV.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да напиша sql заявката за избор и групиране по тип и брой за тип?

  2. Пренасочване към началната страница след влизане в php

  3. Грешка се появява в sql при опит за добавяне на няколко външни ключа

  4. Повреждане на базата данни с MariaDB:Таблица не съществува в двигателя

  5. MySQL грешка празен низ, даден като аргумент за ! характер