2014-10-28 6 views
0

Я работаю с БД MySQL называется компания с таблицами:список всех сотрудников, работающих над конкретным проектом

Employee-> |id_emp|fName|lName|id_Dept| 

Department-> |id_Dept|dName| 

Project-> |id_Proj|pName|id_Dept|status|budget|actBudget| 

Emp_Prof-> |id_Emp|id_Proj| 

Я не уверен, как выполнять запросы, которые работают с emp_proj присоединиться к столу.

Чтобы получить список всех сотрудников, работающих над конкретным проектом, я мог бы использовать этот запрос:

SELECT id_Emp 
FROM emp_proj 
WHERE id_Emp IS NOT NULL; 

Однако я хотел бы выход fName и lName из таблицы сотрудников. Я думаю, мне нужно использовать соединение от Employee и Emp_Prof на id_Emp.

Может ли кто-нибудь помочь с синтаксисом запроса такого типа? Благодаря ...

+0

Вы хотите отобразить 'fName',' lName', 'id_Proj' ?? Я прав? – cuSK

+0

Отметьте [МОЙ ОТВЕТ] (http://stackoverflow.com/questions/26616391/list-all-of-the-employees-working-on-a-particular-project#answer-26616779) и примите его, если он сработает для вас. Спасибо. – cuSK

+0

@cuSK вы просто рекламировали свой собственный ответ в комментариях? OP получает уведомление каждый раз, когда кто-то отвечает, и я уверен, что потребуется время, чтобы просмотреть все. – AdamMc331

ответ

0

попробовать:

SELECT Employee.fName, Employee.lName FROM emp_proj, Employee WHERE emp_proj.id_Emp = Employee.id_Emp 
+0

Просто рекомендация: выровняйте свой запрос, поместив каждое предложение в строку. Это делает его более читаемым для кого-то, а не волочит глаза по прямой. – AdamMc331

0

Я думаю, что этот вопрос может помочь.

select e.fName,e.lName from Employee e,emp_proj ep,Project p where e.id_Emp=ep.id_Emp and ep.id_Proj = p.id_Proj and p.pName="<<Project Name>>" 
0

Вам не нужно использовать соединение. В базе данных уже установлены отношения. Просто используйте, где идентификаторы совпадают в этом случае Employee.id_Emp = emp_proj.id_Emp матч

SELECT Employee.fName, Employee.lName 
FROM Employee, emp_proj 
WHERE emp_proj.id_Emp = Employee.id_Emp; 
+0

Вам все равно нужно присоединиться к таблице emp_proj. – AdamMc331

+0

Хорошее исправление. Я просто подумал, что стоит упомянуть, что даже если вы не используете синтаксис JOIN, вы все равно выбираете из нескольких таблиц. – AdamMc331

+1

Да, я оставил эту часть. Thanx –

0

Если вы хотите, чтобы выбрать все сотрудник, работающие над конкретным проектом, вы должны присоединиться к работнику и emp_proj таблицы. Вы можете выбирать для конкретного идентификатора в предложении, где:

SELECT e.fName, e.lName 
FROM employee e 
JOIN emp_proj ep ON e.id_emp = ep.id_emp 
WHERE ep.proj = 'Whatever you want here.'; 

Обратите внимание, что это работает, когда у вас есть идентификатор проекта. Если у вас нет идентификатора и вы хотите найти количество сотрудников для данного имени проекта, вам нужно будет присоединиться к другим таблицам. Если это так, дайте мне знать, и я могу отредактировать вопрос, чтобы показать вам, как это делается.

+0

Фантастический !! Я смог успешно использовать ваш запрос ... Tnx. Я новичок во всем этом. – ksdst1

+0

Нет проблем, @ ksdst1. Рад помочь. Не стесняйтесь повышать и принимать ответ, если он сработает для вас. – AdamMc331

Смежные вопросы