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

क्या Sphinx/MySQL के साथ एक साथ दो तालिकाओं से डेटा प्राप्त करने का कोई बेहतर तरीका है?

आप वास्तव में दो MySQL क्वेरी नहीं होने से दूर नहीं हो सकते। ठीक है, आप या तो उन्हें यूनियन के साथ एक में जोड़कर कर सकते हैं। या एक नई संयुक्त 'टेबल' (या तो एक दृश्य, या एक भौतिक दृश्य) बनाकर - लेकिन वास्तव में यह प्रयास के लायक नहीं है। दो प्रश्न बिल्कुल ठीक हैं - जैसा कि आप कहते हैं कि वे अनुक्रमित हैं।

आप एक नई संयुक्त अनुक्रमणिका बनाकर - एक स्फिंक्स अनुक्रमणिका (और इसलिए एक खोज क्वेरी) का उपयोग कर सकते हैं। क्योंकि आप कहते हैं कि आपकी चाबियां अद्वितीय नहीं हैं, एक नई सिंथेटिक कुंजी बनानी होगी।

जैसे...

sql_query = SELECT userid*2 AS id, 1 AS table_id, firstname AS one, lastname as two FROM tellycards_user_data \
              UNION \
            SELECT (id*2)+1 as id, 2 AS table_id, name AS one, screenshot AS two FROM tellycards_ripples
sql_attr_unit = table_id

यह आपको एक नकली कुंजी देता है, और यह पहचानने के लिए एक विशेषता देता है कि परिणाम किस तालिका से आया है। आप इसका उपयोग उस मूल तालिका को प्राप्त करने के लिए कर सकते हैं जिससे यह आया है। (एक ही काम करने के और भी कई तरीके हैं)

यह आपको एक क्वेरी चलाने की अनुमति देता है, संयुक्त परिणाम प्राप्त कर सकता है।

... लेकिन आश्वस्त नहीं है कि यह एक अच्छा विचार है। क्योंकि यदि परिणाम असममित हैं, तो आप परिणाम से चूक सकते हैं। मान लें कि एक तालिका से 20 मिलान परिणाम हैं, और 10 दूसरी तालिका से हैं। मान लें कि आप शीर्ष 10 परिणाम दिखाते हैं, अब सीमा के कारण, दूसरी तालिका के परिणाम, पहली तालिका के नीचे छिपे हो सकते हैं (उदाहरण के लिए, वास्तव में, उम्मीद है कि वे आपस में जुड़े हुए हैं)। दो अलग-अलग प्रश्न, आपको प्रत्येक तालिका से कुछ परिणाम प्राप्त करने की गारंटी देता है।

... तो उसके बाद। जो मिला है उस पर टिके रहो। यह ठीक है।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysqli_stmt::bind_param() [mysqli-stmt.bind-param]:चरों की संख्या मापदंडों की संख्या से मेल नहीं खाती

  2. मेरी टेबल का आकार अपेक्षा से 4x बड़ा क्यों है? (पंक्तियाँ * बाइट्स / पंक्ति)

  3. प्रति समूह MySQL शीर्ष 2 रिकॉर्ड

  4. कौन सा MySQL कांटा/संस्करण चुनना है?

  5. ब्राउज़र बंद होने के बाद डेटाबेस से हटाएं