सबसे पहले, यह क्वेरी चाहिए ठीक काम नहीं कर रहा:
SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
from Employees as E, orders as O
WHERE LIMIT 1);
क्योंकि WHERE LIMIT 1
उचित एसक्यूएल नहीं है। और, आपको उचित join
. का उपयोग करना सीखना चाहिए वाक्य - विन्यास। संभवतः, आप चाहते हैं:
SELECT c.*
From Customers c
WHERE c.ContactName = (SELECT FirstName
FROM Employees as E JOIN
Orders as O
ON . . .
LIMIT 1
);
आप संभवतः LIKE
जोड़ सकते हैं =
. के बजाय और सबक्वेरी में '%':
WHERE c.ContactName LIKE (SELECT CONCAT('%', FirstName, '%') . . .
लेकिन मैं इसे EXISTS
. का उपयोग करके लिखूंगा :
SELECT c.*
From Customers c
WHERE EXISTS (SELECT 1
FROM Employees as E JOIN
Orders as O
ON . . .
WHERE c.ContactName LIKE CONCAT('%', FirstName, '%')
);
यह आपकी क्वेरी के समान कार्य नहीं करता है। यह कुछ और उचित करता है। सबक्वेरी से एक यादृच्छिक नाम की तुलना करने के बजाय, यह निर्धारित करेगा कि क्या कोई कोई है सबक्वेरी में मेल खाता है। यह क्वेरी के लिए अधिक उचित इरादा लगता है।