2009-11-04 3 views
0

У меня есть 2 стола Employee и Company_Employee.Как присоединиться к 2 таблицам на основе подобных в mysql

Сотрудник: ID, FirstName

Company_Employee: ID, company_id, EMPLOYEE_ID

Я хочу, чтобы сделать поиск по имени. Я думал, что мой запрос будет выглядеть так:

select FirstName, ID from Employee where FirstName LIKE '%John%' and ID in (select id from Company_Employee) 

Этот запрос не возвращает строк. Кто-нибудь знает, как я могу получить строки с похожим именем FirstName с этими двумя таблицами?

Спасибо!

+0

Вы использовали поле идентификатор из Company_Employee - не вы использовали EMPLOYEE_ID (внутри скобки)? –

ответ

4

Ваш запрос сравнивает company_employee.id с сотрудником.id. Вероятно, он должен сравнить employee.id с company_employee. employee_id.

Вы можете переписать запрос более четко с объединением:

select * 
from employee e 
join company_employee ce 
    on e.id = ce.Employee_ID 
where e.FirstName like '%John%' 
0

Нечто подобное

SELECT 
* 
FROM 
Employee e 
INNER JOIN Company_Employee ce JOIN ON e.Id = ce.Id) 
WHERE 
FirstName LIKE '%JOHN%'