Как вернуть результаты для запроса, используя сводную или что-то подобное - PullRequest
1 голос
/ 07 декабря 2011

Мне нужно написать выбор для получения следующего:

   r_country | s_country |     s_name  |  r_name | msg    |   date
     ca        au            bill       bob      'hi'       2/12/2010

Вот мои данные:

tableA

EmployeeName   |  EmployeeID  | country
bill              1                au
bob               2                ca


tableB

Sender       |  Reciever  |  Msg | date
bill               bob       'hi'   12/12/2010

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

1 Ответ

3 голосов
/ 07 декабря 2011

Вам нужно присоединиться дважды.

SELECT
  receiver.country    AS r_country,
  sender.country      AS s_country,
  data.Sender         AS s_name,
  data.Receiver       AS r_name,
  data.msg            AS msg,
  data.date           AS date
FROM
  TableB              AS data
LEFT JOIN
  TableA              AS sender
    ON sender.EmployeeName = data.Sender
LEFT JOIN
  TableA              AS receiver
    ON receiver.EmployeeName = data.Receiver

Также обратите внимание, что ваши таблицы данных (фактов) не должны содержать в себе ИМЯ. Вы должны использовать UniqueID объекта, поле, которое не зависит от атрибутов объекта (таких как имя, адрес и т. Д.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...