2014-11-04 2 views
0

У меня возникла проблема с созданием запроса. Вот особенности.SQL Query несколько таблиц одинаковых значений

  1. Есть 2 стола company_career и company_people.
  2. Люди содержат информацию о лицах (имя, адрес и т. Д.), А Карьера содержит историческую информацию о карьере (job_title, department и т. Д.)
  3. Люди связаны с карьерой job_ref_id.
  4. Direct_Report_id находится в таблице карьеры и содержит уникальный идентификатор, который коррелирует с job_ref_id.

Пример: job_ref_id = '1' приводит к direct_report_id = 'A'. Затем я использую значение, полученное из direct-report_id (т. Е. «A») и запрашивает job_ref_id = «A», и это приводит к названию сотрудника. Поскольку он создает имя сотрудника (которое фактически является менеджером), мне нужно знать, как я буду запрашивать это, чтобы представить это как имя менеджера.

+2

Пожалуйста, добавьте образцы данных и желаемый результат. –

+0

Здесь нет ничего конкретного .. все, похоже, являются спекуляциями ... конкретны с образцами данных – SriniV

ответ

0

Я думаю, что я знаю, что вы ищете, вам просто нужно использовать объединения и псевдонимы. Например:

SELECT 
cp.name AS [EmployeeName], 
cp.address AS [EmployeeAddress], 
cc.job_title AS [EmployeeTitle], 
cc.department AS [EmployeeDept], 
m.name AS [ManagerName] 
FROM company_people cp 
LEFT JOIN company_career cc ON cc.job_ref_id = cp.job_ref_id 
LEFT JOIN company_people m ON m.job_ref_id = cc.direct_report_id 
Смежные вопросы