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

कॉलम मान के आधार पर MySQL इनर जॉइन टेबल

सभी तालिकाओं के आंकड़े प्राप्त करने के लिए, आप प्रत्येक तालिका के लिए 2 या अधिक चयनों के साथ एक UNION का उपयोग कर सकते हैं:

( SELECT s.*
       , table1.title AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName1 table1
      ON s.id = table1.id
  WHERE tableName = '$tableName1'
)
UNION ALL
( SELECT s.*
       , table2.name AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName2 table2
      ON s.id = table2.id
  WHERE tableName = '$tableName2'
)
UNION ALL
( SELECT s.*
       , table3.lastname AS name      --or whatever field you want to show
  FROM stats s
    JOIN $tableName3 table3
      ON s.id = table3.id
  WHERE tableName = '$tableName3'
)
;

LEFT JOIN के साथ Winfred के विचार का उपयोग करना एस। यह विभिन्न परिणाम उत्पन्न करता है, उदा। अन्य तालिकाओं से प्रत्येक फ़ील्ड अपने स्वयं के कॉलम में आउटपुट होता है (और कई एनयूएलएल होते हैं)।

SELECT s.*
     , table1.title      --or whatever fields you want to show
     , table2.name
     , table3.lastname   --etc
FROM stats s
  LEFT JOIN $tableName1 table1
    ON s.id = table1.id
      AND s.tableName = '$tableName1'
  LEFT JOIN $tableName2 table2
    ON s.id = table2.id
      AND s.tableName = '$tableName2'
  LEFT JOIN $tableName3 table3
    ON s.id = table3.id
      AND s.tableName = '$tableName3'
--this is to ensure that omited tables statistics don't appear
WHERE s.tablename IN
   ( '$tableName1'
   , '$tableName2'
   , '$tableName3'
   )
;


  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. प्राथमिक कुंजी पर जॉइन का उपयोग करते समय मुझे किस इंडेक्स का उपयोग करना चाहिए

  3. MySQL त्रुटि - आपके SQL सिंटैक्स में त्रुटि है

  4. एक निश्चित तिथि से शुरू होने वाले 7 दिनों के अंतराल से पंक्तियों को समूहित करें

  5. दो स्तंभों द्वारा डुप्लिकेट पंक्तियों को खोजें और निकालें