SQL 2005 - две таблицы объединяются по некоторому идентификатору, - PullRequest
1 голос
/ 03 сентября 2010

Допустим, у меня есть 2 таблицы.Я хочу присоединиться к ним, чтобы для каждой учетной записи я получил 1 строку, в которой есть информация об учетной записи, плюс информация о первичном контакте, добавленная в таблицу.Это возможно?Идентификаторы являются уникальными ключами.

ТАБЛИЦА СЧЕТОВ

 accountid    |    name    |    income    |    primaryContact  

 123456789     Jack Johnson    120,000      Jill Johnson

КОНТАКТНАЯ ТАБЛИЦА

parentAccountid    |contactid    |    name    |    street        |    city    |    state    |    Country

 123456789           13459284      Jill Johnson    1355 Fir street  Yorba         Washington      USA 

СТОЛ РЕЗУЛЬТАТОВ

  accountid    |    name    |    income    |    primaryContact    |    street    |    city    |    state    |    country 

 123456789     Jack Johnson    120,000      Jill Johnson           1355 Fir street   Yorba           Washington      USA

Ответы [ 2 ]

2 голосов
/ 03 сентября 2010

Использование:

   SELECT a.accountid,
          a.name,
          a.income,
          a.primaryContact,
          c.street,
          c.city,
          c.state,
          c.country
     FROM ACCOUNT a
LEFT JOIN CONTACT c ON c.parentaccountid = a.accountid
                   AND c.name = a.primarycontact

Это покажет вам все учетные записи. Если есть основной контакт, значения будут заполнены - в противном случае ссылки на таблицу CONTACT будут NULL. Если вам не нужно это поведение, опустите «ВЛЕВО» в запросе:

   SELECT a.accountid,
          a.name,
          a.income,
          a.primaryContact,
          c.street,
          c.city,
          c.state,
          c.country
     FROM ACCOUNT a
     JOIN CONTACT c ON c.parentaccountid = a.accountid
                   AND c.name = a.primarycontact

Смотрите эту ссылку для визуального представления различных JOIN ...

2 голосов
/ 03 сентября 2010
SELECT a.accountid     ,
       a.name          ,
       a.income        ,
       a.primaryContact,
       c.street        ,
       c.city          ,
       c.state         ,
       c.country
FROM   account a
       JOIN contact c
       ON     a.accountid      = c.parentAccountid
       AND    a.primaryContact = c.name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...