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

MySQL सबक्वेरी में एकाधिक कॉलम/फ़ील्ड का चयन करना

हां, आप यह कर सकते हैं। आपको जिस कौशल की आवश्यकता है वह यह अवधारणा है कि टेबल सर्वर से टेबल प्राप्त करने के दो तरीके हैं। एक तरीका है ..

FROM TABLE A

दूसरा तरीका है

FROM (SELECT col as name1, col2 as name2 FROM ...) B

ध्यान दें कि चुनिंदा खंड और उसके आसपास के कोष्ठक हैं एक टेबल, एक वर्चुअल टेबल।

तो, अपने दूसरे कोड उदाहरण का उपयोग करके (मैं उन कॉलमों पर अनुमान लगा रहा हूं जिन्हें आप यहां पुनर्प्राप्त करने की उम्मीद कर रहे हैं):

SELECT a.attr, b.id, b.trans, b.lang
FROM attribute a
JOIN (
 SELECT at.id AS id, at.translation AS trans, at.language AS lang, a.attribute
 FROM attributeTranslation at
) b ON (a.id = b.attribute AND b.lang = 1)

ध्यान दें कि आपकी वास्तविक तालिका attribute इस जॉइन में पहली टेबल है, और इस वर्चुअल टेबल को मैंने b . कहा है दूसरी तालिका है।

यह तकनीक विशेष रूप से तब काम आती है जब वर्चुअल टेबल किसी प्रकार की सारांश तालिका होती है। उदा.

SELECT a.attr, b.id, b.trans, b.lang, c.langcount
FROM attribute a
JOIN (
 SELECT at.id AS id, at.translation AS trans, at.language AS lang, at.attribute
 FROM attributeTranslation at
) b ON (a.id = b.attribute AND b.lang = 1)
JOIN (
 SELECT count(*) AS langcount,  at.attribute
 FROM attributeTranslation at
 GROUP BY at.attribute
) c ON (a.id = c.attribute)

देखें कि यह कैसे जाता है? आपने एक वर्चुअल टेबल तैयार किया है c दो स्तंभों से युक्त, इसे अन्य दो से जोड़ दिया, ON . के लिए स्तंभों में से एक का उपयोग किया खंड, और दूसरे को आपके परिणाम सेट में एक कॉलम के रूप में वापस कर दिया।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LIMIT क्लॉज में बाइंडवैल्यू विधि कैसे लागू करें?

  2. मैं एक mysql कथन को पूर्ववत कैसे कर सकता हूं जिसे मैंने अभी निष्पादित किया है?

  3. कौन सा तेज़ है:सहसंबद्ध उपश्रेणियाँ या सम्मिलित हों?

  4. MySQL COUNT DISTINCT

  5. त्रुटि 1044 (42000):सभी विशेषाधिकारों के साथ 'रूट' के लिए प्रवेश अस्वीकृत