खोज…


वाक्य - विन्यास

  • चयन के संयोजन के बाद UNIST DISTINCT - समर्पण
  • यूनिअन ऑल - नॉन डिडअप (तेज)
  • UNION - डिफ़ॉल्ट DISTINCT है
  • चयन करें ... यूनिअन चयन ... - ठीक है, लेकिन ORDER BY पर अस्पष्ट है
  • (Select ...) UNION (SELECT ...) ORDER BY ... - अस्पष्टता को हल करता है

टिप्पणियों

UNION कई CPU का उपयोग नहीं करता है।

यूनिअन हमेशा * परिणामों को इकट्ठा करने के लिए एक अस्थायी तालिका शामिल करता है। * 5.7.3 / मारियाडीबी 10.1 के अनुसार, यूनिअन के कुछ रूप एक tmp तालिका (इसलिए, तेज) का उपयोग किए बिना परिणाम प्रदान करते हैं।

यूनिअन के साथ सेलेक्ट स्टेटमेंट्स का संयोजन

आप UNION कीवर्ड के साथ दो संरचित संरचित प्रश्नों के परिणामों को जोड़ सकते हैं।

उदाहरण के लिए, यदि आप दो अलग-अलग तालिकाओं, authors और editors से सभी संपर्क जानकारी की सूची चाहते हैं, उदाहरण के लिए, आप इस तरह से UNION कीवर्ड का उपयोग कर सकते हैं:

select name, email, phone_number 
from authors

union

select name, email, phone_number
from editors

अपने आप से union का उपयोग करना डुप्लिकेट को छीन लेगा। यदि आपको अपनी क्वेरी में डुप्लिकेट रखने की आवश्यकता है, तो आप इस तरह से ALL कीवर्ड का उपयोग कर सकते हैं: UNION ALL

द्वारा आदेश

यदि आपको UNION के परिणामों को क्रमबद्ध करना है, तो इस पैटर्न का उपयोग करें:

( SELECT ... )
UNION
( SELECT ... )
ORDER BY

कोष्ठक के बिना, अंतिम आदेश BY अंतिम चयन से संबंधित होगा।

OFFSET के माध्यम से पृष्ठ पर अंक लगाना

UNION में एक LITIT जोड़ते समय, यह उपयोग करने के लिए पैटर्न है:

( SELECT ... ORDER BY x  LIMIT 10 )
UNION
( SELECT ... ORDER BY x  LIMIT 10 )
ORDER BY x  LIMIT 10

जब से तुम अनुमान नहीं लगा सकते जो चयन (रों) "10" से आएगा, आप प्रत्येक से 10 पाने के लिए, इस सूची में नीचे की आवश्यकता होगी तो आगे व्हिटल, दोनों दोहरा ORDER BY और LIMIT

10 आइटम के 4 पेज के लिए, इस पैटर्न की आवश्यकता है:

( SELECT ... ORDER BY x  LIMIT 40 )
UNION
( SELECT ... ORDER BY x  LIMIT 40 )
ORDER BY x  LIMIT 30, 10

यही है, प्रत्येक SELECT में 4 पेज का मूल्य एकत्र SELECT , फिर UNION में OFFSET करें।

विभिन्न स्तंभों के साथ डेटा का संयोजन

SELECT name, caption as title, year, pages FROM books 
UNION
SELECT name, title, year, 0 as pages FROM movies

जब अलग-अलग कॉलम के साथ 2 रिकॉर्ड सेट को मिलाते हैं तो लापता मानों को डिफ़ॉल्ट मानों के साथ अनुकरण करते हैं।

यूनिअन ऑल और यूनिअन

1,22,44 यूनिअन का चयन करें 2,33,55 का चयन करें

यहाँ छवि विवरण दर्ज करें

2,22,44 यूनिअन का चयन करें 2,33,55 यूनिअन का चयन 2,33,55 का चयन करें

परिणाम ऊपर जैसा है।

सभी का उपयोग करें

कब

2,22,44 यूनिअन का चयन करें 2,33,55 यूनिअन का चयन करें सभी 2,33,55 का चयन करें

यहाँ छवि विवरण दर्ज करें

एक ही कॉलम के साथ अलग-अलग MySQL तालिकाओं पर डेटा को जोड़ना और विलय करना अद्वितीय पंक्तियों और रनिंग क्वेरी में

यह UNION ALL कई तालिकाओं से डेटा को जोड़ता है और आपके प्रश्नों के लिए उपयोग करने के लिए एक तालिका नाम अन्य नाम के रूप में कार्य करता है:

SELECT YEAR(date_time_column), MONTH(date_time_column), MIN(DATE(date_time_column)), MAX(DATE(date_time_column)), COUNT(DISTINCT (ip)), COUNT(ip), (COUNT(ip) / COUNT(DISTINCT (ip))) AS Ratio
FROM (
    (SELECT date_time_column, ip FROM server_log_1 WHERE state = 'action' AND log_id = 150) UNION ALL
    (SELECT date_time_column, ip FROM server_log_2 WHERE state = 'action' AND log_id = 150) UNION ALL
    (SELECT date_time_column, ip FROM server_log_3 WHERE state = 'action' AND log_id = 150) UNION ALL
    (SELECT date_time_column, ip FROM server_log WHERE state = 'action' AND log_id = 150)
) AS table_all
GROUP BY YEAR(date_time_column), MONTH(date_time_column);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow