Ten eerste moet deze zoekopdracht moeten niet goed werken:
SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
from Employees as E, orders as O
WHERE LIMIT 1);
Omdat WHERE LIMIT 1
is niet de juiste SQL. En je zou moeten leren om de juiste join
te gebruiken syntaxis. Vermoedelijk bedoelt u:
SELECT c.*
From Customers c
WHERE c.ContactName = (SELECT FirstName
FROM Employees as E JOIN
Orders as O
ON . . .
LIMIT 1
);
Je zou eventueel LIKE
. kunnen toevoegen in plaats van =
en '%' in de subquery:
WHERE c.ContactName LIKE (SELECT CONCAT('%', FirstName, '%') . . .
Maar ik zou dit schrijven met 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, '%')
);
Dit doet niet precies hetzelfde als uw vraag. Het doet iets redelijks. In plaats van één willekeurige naam uit de subquery te vergelijken, zal het bepalen of er enige . zijn overeenkomsten in de subquery. Dat lijkt een meer redelijke bedoeling voor de zoekopdracht.