Primeiro, esta consulta deve não estar funcionando bem:
SELECT *
From Customers
WHERE Customers.ContactName = (SELECT FirstName
from Employees as E, orders as O
WHERE LIMIT 1);
Porque
WHERE LIMIT 1
não é SQL adequado. E você deve aprender a usar o join
adequado sintaxe. Presumivelmente, você pretende:SELECT c.*
From Customers c
WHERE c.ContactName = (SELECT FirstName
FROM Employees as E JOIN
Orders as O
ON . . .
LIMIT 1
);
Você poderia adicionar
LIKE
em vez de =
e '%' na subconsulta:WHERE c.ContactName LIKE (SELECT CONCAT('%', FirstName, '%') . . .
Mas eu escreveria isso 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, '%')
);
Isso não faz exatamente a mesma coisa que sua consulta. Faz algo mais razoável. Em vez de comparar um nome aleatório da subconsulta, ele determinará se há algum correspondências na subconsulta. Essa parece uma intenção mais razoável para a consulta.