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

माता-पिता/बच्चे एक ही टेबल में

डेटाबेस में पहले बच्चे का कोई अर्थ नहीं है, आप id के न्यूनतम द्वारा पहला बच्चा प्राप्त कर सकते हैं या न्यूनतम मान, लेकिन मान तालिका में किसी विशिष्ट क्रम के साथ संग्रहीत नहीं होते हैं, इसलिए आप यह नहीं बता सकते कि कौन सा मान पहला है।

लेकिन, यह मानते हुए कि id स्वतः वृद्धिशील स्तंभ है, तो पहले बच्चे का मान न्यूनतम id का मान है , तो आप यह कर सकते हैं:

SELECT
  t1.parent,
  t2.name,
  t1.value
FROM tablename AS t1
INNER JOIN
(
  SELECT MIN(id) AS id, parent
  FROM tablename
  GROUP BY parent
) AS t22 ON t22.id = t1.id AND t1.parent = t22.parent
INNER JOIN tablename AS t2 ON t1.parent = t2.id;

इसे यहां क्रिया में देखें:

यह आपको देगा :

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |

या: आप इसे न्यूनतम मान से प्राप्त कर सकते हैं:

SELECT
  t1.parent,
  t2.name,
  MIN(t1.value) AS value
FROM tablename AS t1
INNER JOIN tablename AS t2 ON t1.parent = t2.id
GROUP BY t1.parent, t2.name;

इसे क्रिया में देखें:

यह आपको देगा:

| PARENT | NAME | VALUE |
-------------------------
|      1 |  aaa |   111 |
|      3 |  ccc |   333 |



  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 ट्रिगर एक CHECK बाधा का अनुकरण कर सकता है?

  2. मैसकल:एकाधिक टेबल या एक बड़ी टेबल?

  3. डेटाबेस - एक इवेंट टेबल डिजाइन करना

  4. MySQL मैच अगेंस्ट मल्टीपल वैल्यूज़ के साथ AGAINST

  5. एकाधिक अक्षांश/देशांतर बिंदुओं की त्रिज्या