Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL सिंगल स्टेटमेंट दो टेबल को मर्ज करने के लिए

आप इसे join . के साथ कर सकते हैं और एक group by :

select u.*, firstname, lastname
from user u join
     (select uf.user_id,
             max(case when key = 'firstname' then value end) as firstname,
             max(case when key = 'lastname' then value end) as lastname
      from user_field uf
      group by user_id
     ) uf
     on uf.user_id = u.id;

आप इसे जुड़ने के क्रम के साथ भी कर सकते हैं:

select u.*. firstname.value, lastname.value
from user u join
     user_field firstname
     on u.id = firstname.user_id and firstname.key = 'firstname' join
     user_field lastname
     on u.id = lastname.user_id and lastname.key = 'lastname';

आपका परिणाम इसे केवल एक उपयोगकर्ता आईडी तक सीमित करता प्रतीत होता है। आप शायद एक where want चाहते हैं इस फिल्टर के साथ क्लॉज।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या मैं एक चयन क्वेरी में परिकलित फ़ील्ड का पुन:उपयोग कर सकता हूं?

  2. JDBC सही कथन के साथ MySQLSyntaxError अपवाद लौटा रहा है

  3. अजगर के साथ भागने के तार mysql.connector

  4. फ़ोरैच लूप में SQL परिणाम का उपयोग करना

  5. सरणी में कुंजी द्वारा MySQL खोज json मान