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

MySQL क्वेरी जहां जॉइन केस पर निर्भर करता है

शायद सही परिणाम देने के लिए इसमें बदलाव करने की आवश्यकता है, लेकिन मुझे आशा है कि आपको यह विचार मिल गया होगा:

SELECT ft1.task, COUNT(ft1.id) AS count
FROM feed_tasks ft1
LEFT JOIN pages p1 ON ft1.type=1 AND p1.id = ft1.reference_id
LEFT JOIN urls u1 ON ft1.type=2 AND u1.id = ft1.reference_id
WHERE COALESCE(p1.id, u1.id) IS NOT NULL
AND ft1.account_id IS NOT NULL
AND a1.user_id = :user_id

संपादित करें:

CASE...END के बारे में एक छोटी सी टिप्पणी . आपका मूल कोड नहीं चलता है, क्योंकि PHP या JavaScript के विपरीत, SQL CASE एक प्रवाह नियंत्रण संरचना नहीं है जो यह चुनने की अनुमति देती है कि कोड का कौन सा भाग चलेगा। इसके बजाय, यह एक अभिव्यक्ति देता है। तो आप यह कर सकते हैं:

SELECT CASE
    WHEN foo<0 THEN 'Yes'
    ELSE 'No'
END AS is_negative
FROM bar

... लेकिन यह नहीं:

-- Invalid
CASE 
    WHEN foo<0 THEN SELECT 'Yes' AS is_negative
    ELSE SELECT 'No' AS is_negative
END
FROM bar


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. कैसे एक 'संबंधित प्रश्न' इंजन बनाने के लिए?

  2. MySQL रूट यूजर के साथ MySQL को कैसे एक्सेस करें

  3. PHP और MySQL फ़ाइलों को कैसे अपलोड और डाउनलोड करें

  4. mysql क्वेरी एक आईडी कॉलम से कई टेबल दिखाती है

  5. Xampp:वेब ब्राउज़र लोकलहोस्ट पेज नहीं दिखाएगा