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

एक परिणाम लौटने के लिए बाएं शामिल होने को सीमित करना?

त्रुटि स्पष्ट है -- ) . के बंद होने के बाद आपको बस सबक्वेरी के लिए एक उपनाम बनाने की आवश्यकता है और इसे अपने ON . में उपयोग करें क्लॉज क्योंकि प्रत्येक तालिका, व्युत्पन्न या वास्तविक, का अपना पहचानकर्ता होना चाहिए। फिर, आपको movie_id . शामिल करना होगा इसमें शामिल होने में सक्षम होने के लिए सबक्वायरी की चयन सूची में। चूंकि सबक्वेरी में पहले से ही WHERE popularity = 0 . शामिल है , आपको इसे शामिल होने के ON . में शामिल करने की आवश्यकता नहीं है खंड।

LEFT JOIN (
  SELECT
    movie_id, 
    movie_name 
  FROM movies 
  WHERE popularity = 0
  ORDER BY movie_name
  LIMIT 1
) the_alias ON t1.movie_id = the_alias.movie_id

यदि आप इनमें से किसी एक कॉलम का उपयोग बाहरी SELECT . में कर रहे हैं , इसे the_alias.movie_name . के माध्यम से संदर्भित करें उदाहरण के लिए।

आवश्यकता को बेहतर ढंग से समझने के बाद अपडेट करें:

प्रति समूह एक से जुड़ने के लिए, आप एक समग्र MAX() . का उपयोग कर सकते हैं या MIN() movie_id . पर और इसे सबक्वायरी में समूहित करें। कोई सबक्वेरी नहीं LIMIT तब आवश्यक है -- आपको पहला movie_id प्राप्त होगा प्रति नाम MIN() . के साथ या आखिरी के साथ MAX()

LEFT JOIN (
  SELECT
    movie_name,
    MIN(movie_id) AS movie_id
  FROM movies
  WHERE popularity = 0
  GROUP BY movie_name
) the_alias ON t1.movie_id = the_alias.movie_id


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मेरे `INSERT ... ON DUPLICATE KEY UPDATE` में 2 पंक्तियाँ क्यों प्रभावित हैं?

  2. MATCH () के खिलाफ () का उपयोग करके स्ट्रिंग और संख्या के लिए MySQL खोज

  3. वूकॉमर्स वेरिएशन आईडी कैसे प्राप्त करें?

  4. MySQL बूलियन टिनिंट (1) 127 तक मान रखता है?

  5. क्वेरी में निर्दिष्ट आदेश द्वारा SQL क्रमित करें