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

MySQL संघ क्वेरी, 2 चर द्वारा आदेश

आपको वास्तव में अपनी स्कीमा पर अधिक ध्यान से विचार करने की आवश्यकता है। दिनांक समय कॉलम को समान नाम देने और फिर इस तरह की क्वेरी चलाने पर विचार करें - http:/ /sqlfiddle.com/#!2/a3b4c/7/0

SELECT selection, id, datetimefoo, user FROM (
  SELECT 
    1 AS selection, 
    table1.id, table1.datetimefoo, 
    table3.user 
    FROM table1 
    LEFT OUTER JOIN table2 
    ON table1.id = table2.table1id
    LEFT OUTER JOIN table3
    ON table1.id = table3.id


  UNION

  SELECT 
    2 AS selection, 
    table1.id, table1.datetimefoo, 
    table3.user 
    FROM table1 
    INNER JOIN table2 
    ON table1.id = table2.table1id
    INNER JOIN table3
    ON table1.id = table3.id

  ) AS T2
ORDER BY datetimefoo DESC

एसक्यूएल फिडेल में यह आप जो खोज रहे हैं उसके करीब परिणाम उत्पन्न करता है। मुझे अभी भी यकीन नहीं है कि आपको दूसरी क्वेरी पर इनर जॉइन की आवश्यकता क्यों है - ऐसा कुछ भी नहीं है जो आप यहां कर रहे हैं जिसके लिए उनकी आवश्यकता है।

यहां एक और तरीका है जिसके लिए कॉलम नामों को बदलने की आवश्यकता नहीं है, लेकिन सॉर्ट करने योग्य कॉलम के लिए उपनाम की आवश्यकता है - http://sqlfiddle.com/#!2/ec4bc/3/0

SELECT * FROM (
  SELECT 
    1 AS selection, 
    table1.id, table1.datetimefoo AS sort_date, -- alias on first table's date
    table2.datetimebar,
    table3.user 
    FROM table1 
    LEFT OUTER JOIN table2 
    ON table1.id = table2.table1id
    LEFT OUTER JOIN table3
    ON table1.id = table3.id


  UNION

  SELECT 
    2 AS selection, 
    table1.id, table1.datetimefoo,
    table2.datetimebar AS sort_date, -- alias on second table's date
    table3.user 
    FROM table1 
    INNER JOIN table2 
    ON table1.id = table2.table1id
    INNER JOIN table3
    ON table1.id = table3.id

  ) AS T2
ORDER BY sort_date DESC


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं MySQL में प्रत्येक पंक्ति में कैसे जोड़ूं?

  2. सी # के माध्यम से MySQL सर्वर से कनेक्ट करना

  3. Mysql कॉलम मौजूद होने पर केवल कॉलम से कैसे चयन करें

  4. ट्रिगर में उपयोग करने के लिए वर्तमान अद्यतन कॉलम नाम प्राप्त करें

  5. Django अतिरिक्त उपयोगकर्ता पंजीकरण विवरण डेटाबेस में सहेजा नहीं जा रहा है