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

मैं अद्यतन विवरण में जॉइन का उपयोग कैसे कर सकता हूं?

मुझे लगता है कि इसे यह करना चाहिए:

UPDATE QandA AS ans1
JOIN QandA AS ans2 ON ans2.related = ans1.related
JOIN QandA AS ques ON ans2.related = ques.id
SET ans1.accepted = (ans1.id = :answer_id)
WHERE ques.author_id = :session_id
AND ans2.id = :answer_id

पहला JOIN उसी प्रश्न के उत्तरों को फ़िल्टर कर देता है जिस उत्तर को स्वीकार किया जा रहा है।

दूसरा JOIN वह प्रश्न ढूंढता है।

WHERE क्लॉज अपडेट को केवल दिए गए लेखक के प्रश्नों तक सीमित कर देगा और उत्तर आईडी को स्वीकार किए जाने को निर्दिष्ट करेगा।

DEMO

अतिरिक्त शर्त के लिए, जोड़ें

AND (ques.free IS NULL or ans1.accepted IS NULL)

करने के लिए WHERE खंड। ques.free IS NULL किसी भी निःशुल्क प्रश्न से मेल खाता है, और ans1.accepted IS NULL बिना स्वीकृत उत्तर वाले प्रश्न से मेल खाता है (क्योंकि जब कोई उत्तर स्वीकार किया जाता है, तो उस प्रश्न के अन्य सभी उत्तर accepted = 0 प्राप्त होते हैं। )।

बिना स्वीकृत उत्तर वाले प्रश्न का डेमो
प्रश्न का डेमो जो मुफ़्त है




  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 सिंगल कोट इंसर्शन एरर

  2. MySQL कार्यक्षेत्र में CSV आयात कैसे करें

  3. PHP और jQuery के साथ लाइव चैट करें। जानकारी कहाँ स्टोर करें? MySQL या फ़ाइल?

  4. MySQL ड्रॉप टेबल

  5. Doctrine2 (Symfony2) में केस द्वारा ऑर्डर कैसे करें