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

MySQL 3 टेबल्स में शामिल हों का चयन करें

आपको दो जुड़ने की आवश्यकता होगी। निम्नलिखित में से कुछ आपको आरंभ करना चाहिए (हालांकि मैं pm_data के बीच संबंध को 100% नहीं समझता हूं और pm_info ):

SELECT pm_info.is_read, sender.usrFirst + ' ' + sender.usrLast as sender_name, 
    pm_data.date_sent, pm_data.title, pm_data.thread_id
FROM pm_info
INNER JOIN pm_data ON pm_info.thread_id = pm_data.thread_id
INNER JOIN tblUsers AS sender ON pm_data.sender_id = tblUsers.usrID
WHERE pm_info.receiver_id = @USER_ID /*in this case, 2*/
ORDER BY pm_data.date_sent DESC

मैं pm_data . के बीच संबंध मान रहा हूं और pm_info थ्रेड आईडी है। यदि ऐसा नहीं है, तो आपको उपरोक्त को अपनी आवश्यकता के अनुसार समायोजित करने में सक्षम होना चाहिए। मैंने यहां भेजी गई तिथि के अनुसार भी क्रमित किया है, लेकिन यह धागे को एक साथ नहीं रखेगा . मुझे यकीन नहीं है कि आप उन्हें एक साथ रखना चाहते हैं या नहीं, जिस तरह से आपने अपने प्रश्न को वाक्यांशबद्ध किया है।

यदि आप थ्रेड को एक साथ रखना चाहते हैं , आपको अधिक जटिल क्वेरी की आवश्यकता होगी:

SELECT pm_info.is_read, sender.usrFirst + ' ' + sender.usrLast as sender_name, 
    pm_data.date_sent, pm_data.title, pm_data.thread_id
FROM pm_info
INNER JOIN pm_data ON pm_info.thread_id = pm_data.thread_id
INNER JOIN tblUsers AS sender ON pm_data.sender_id = tblUsers.usrID
INNER JOIN (SELECT thread_id, MAX(date_sent) AS max_date
            FROM pm_data
            GROUP BY thread_id) AS most_recent_date 
           ON pm_data.thread_id = most_recent_date.thread_id
WHERE pm_info.receiver_id = @USER_ID /*in this case, 2*/
ORDER BY most_recent_date.max_date DESC, pm_data.thread_id, 
    pm_data.date_sent 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. php श्रेणी, उप श्रेणी वृक्ष

  2. MySQL MONTHNAME () संख्याओं से

  3. MyCLI - स्वत:पूर्णता और सिंटैक्स-हाइलाइटिंग के साथ एक MySQL/MariaDB क्लाइंट

  4. MySQL ट्रिगर अगर स्थिति मौजूद है

  5. php सरणी में mysql क्वेरी परिणाम