Практика в SQL здесь http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join Я составил задачу для себя - нужно составить таблицу, используя INNER JOIN, которая будет содержать CustomerID, EmployeeID, ContactName клиента и последние и первые данные сотрудника имена WHERE Имя сотрудника указано в контактном имени Клиента. Далее не дает выход:LIKE in INNER JOIN не работает
SELECT DISTINCT Customers.CustomerID, Customers.ContactName AS CustomerContactName, Employees.EmployeeID, Employees.FirstName AS EmployeeFirstName, Employees.LastName AS EmployeeLastName
FROM Customers
JOIN Employees
ON Customers.ContactName LIKE "%"+Employees.FirstName+"%"
Хотя этот:
SELECT DISTINCT Customers.CustomerID, Customers.ContactName AS CustomerContactName, Employees.EmployeeID, Employees.FirstName AS EmployeeFirstName, Employees.LastName AS EmployeeLastName
FROM Customers
JOIN Employees
ON Customers.ContactName LIKE "%Janet%" AND Employees.FirstName LIKE "%Janet%"
дает правильный вывод только для одного случая. Я что-то пропустил или это проблема w3schools?
Изменения в пункте ниже .. ON Customers.ContactName LIKE (выберите «%» + Employees.FirstName + '%') – mhn
Думаю, вам нужно предоставить пример ваших данных в каждой таблице, которую вы ожидаете присоединиться. Сам запрос выглядит так, как будто он работает, поэтому, вероятно, проблема связана с вашими данными. –
Два запроса не сопоставимы. Если имя было «Janette», а контактным именем было «Janet Jackson», то оба значения удовлетворяли 'LIKE '% Janet% '', но' Janet Jackson' не содержит 'Janette', поэтому условие соединения не выполняется. – GarethD