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

MySQL पंक्तियों को प्राप्त करता है लेकिन एक कॉलम मान को दूसरे पर पसंद करता है

इसे यह करना चाहिए:

SELECT
     T1.id,
     T1.name,
     T1.value,
     T1.priority
FROM
     My_Table T1
LEFT OUTER JOIN My_Table T2 ON
     T2.name = T1.name AND
     T2.priority > COALESCE(T1.priority, -1)
WHERE
     T2.id IS NULL

यह आपको कई प्राथमिकता स्तरों की भी अनुमति देता है, जिसमें उच्चतम वह है जिसे आप वापस करना चाहते हैं (यदि आपके पास 1 और 2 था, तो 2 वापस कर दिया जाएगा)।

मैं यह भी कहूंगा कि ऐसा लगता है कि डीबी में कुछ डिज़ाइन समस्याएं हैं। मेरा दृष्टिकोण होता:

My_Table (आईडी, नाम) My_Values ​​​​(आईडी, प्राथमिकता, मान) आईडी से आईडी पर एक एफके के साथ। My_Table और id में id पर PK, My_Values ​​में प्राथमिकता। बेशक, मैं उपयुक्त तालिका नामों का भी उपयोग करूंगा।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL बनाम MySQL, एक तुलना

  2. कॉलम नाम से पहले SQL स्टेटमेंट में एट-साइन करें

  3. हाइबरनेट + mysql + फ़ाइल में डेटा लोड करें

  4. Mysql डेटाबेस दो डेटाबेस के बीच सिंक करता है

  5. MySQL त्रुटि 2006:mysql सर्वर चला गया है