En primer lugar, esta consulta debe no funciona bien:
SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
from Employees as E, orders as O
WHERE LIMIT 1);
Porque WHERE LIMIT 1
no es SQL adecuado. Y deberías aprender a usar join
adecuado sintaxis. Presumiblemente, su intención es:
SELECT c.*
From Customers c
WHERE c.ContactName = (SELECT FirstName
FROM Employees as E JOIN
Orders as O
ON . . .
LIMIT 1
);
Posiblemente podría agregar LIKE
en lugar de =
y '%' en la subconsulta:
WHERE c.ContactName LIKE (SELECT CONCAT('%', FirstName, '%') . . .
Pero escribiría esto usando 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, '%')
);
Esto no hace exactamente lo mismo que su consulta. Hace algo más razonable. En lugar de comparar un nombre aleatorio de la subconsulta, determinará si hay alguno coincidencias en la subconsulta. Esa parece una intención más razonable para la consulta.