2009-11-04 8 views
0

J'ai 2 tables Employee et Company_Employee.Comment joindre 2 tables basées sur un semblable dans mysql

employé: ID, FirstName

Company_Employee: ID, Company_id, employee_id

Je veux faire une recherche par prénom. Je pensais que ma requête ressemblerait à:

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

Cette requête ne renvoie aucune ligne. Est-ce que quelqu'un sait comment je peux obtenir les lignes avec un prénom par FirstName avec ces 2 tables?

Merci!

+0

Vous avez utilisé le champ id de Company_Employee - ne devrait pas avoir utilisé Employee_ID (à l'intérieur les supports)? –

Répondre

4

Votre requête compare un company_employee.id avec un employee.id. Il devrait probablement comparer employee.id avec company_employee. employee_id.

Vous pouvez réécrire la requête plus clairement avec une jointure:

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

Quelque chose comme ça

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