SQL присоединенный вопрос - PullRequest
       5

SQL присоединенный вопрос

1 голос
/ 10 августа 2009

У меня проблемы с вопросом о соединении SQL.

У меня есть таблица EMPLOYEE с EmpID, FirstName, LastName, Email, Phone

У меня есть другая таблица OTHERNAME с 2 полями "Name" & "OtherName".

Эта таблица содержит значения поиска, такие как "James", "Jim"; "Thomas", "Tom"; "Steven", "Steve".

Я хочу написать запрос, который будет возвращать строки

EmpID, FirstName, LastName, Email, Phone, OtherName
where Employee.Firstname = OTHERName.Name

Ответы [ 6 ]

7 голосов
/ 10 августа 2009
Select e.EmpID, e.FirstName, e.LastName, e.Email, e.Phone, o.OtherName
From Employee e
Left Outer Join OtherName o on e.FirstName = o.Name

Судя по вашим комментариям, вы действительно хотите внешнего соединения.

(из комментариев) Внешнее объединение вернет всех сотрудников вместе с Именем, если оно есть, в противном случае Именем будет нулевое значение, которое вы можете обработать в коде. Внутреннее объединение ограничивает результаты только сотрудниками с соответствующей записью.

1 голос
/ 05 мая 2011
select e.EmpID, e.FirstName, e.LastName, e.Email, e.Phone, o.OtherName 
from employee e,othername o 
where e.FirstName=o.name
1 голос
/ 10 августа 2009

попробуйте это:

SELECT
    e.EmpID
        CASE 
            WHEN o.OtherName IS NOT NULL THEN OtherName
            ELSE e.FirstName
        END AS FirstName
        ,e.LastName
        ,e.Email
        ,e.Phone
        ,o.OtherName
    FROM Employee             e
    LEFT OUTER JOIN OtherName o ON e.FirstName = o.Name
0 голосов
/ 25 декабря 2013

Вы можете использовать следующую команду SQL

SELECT EMPLOYEE.EmpID, 
       EMPLOYEE.FirstName, 
       EMPLOYEE.LastName, 
       EMPLOYEE.Email, 
       EMPLOYEE.Phone, 
       OTHERNAME.OtherName FROM EMPLOYEE INNER JOIN OTHERNAME ON EMPLOYEE.FirstName = OTHERNAME.Name
0 голосов
/ 10 августа 2009

ВЫБРАТЬ E.EmpId, E.FirstName, E.LastName, E.Email, E.Phone, O.OtherName ОТ СОТРУДНИКА Е ВНУТРЕННИЙ ПРИСОЕДИНЯЙТЕСЬ К ДРУГИМ ИМ ON E.FirstName = O.Name

0 голосов
/ 10 августа 2009
SELECT E.EmpID, E.FirstName, E.LastName, E.Email, E.Phone, O.OtherName
FROM Employee E 
    INNER JOIN Othername O
        ON E.Firstname = O.Name

Должен сделать трюк

Или, если вам нужны все результаты, даже те, которые не имеют значений "other name".

SELECT E.EmpID, E.FirstName, E.LastName, E.Email, E.Phone, O.OtherName
FROM Employee E 
    LEFT OUTER JOIN Othername O
        ON E.Firstname = O.Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...