SQL Server: получить имя для каждого идентификатора в строке из другой таблицы (ASP.net)

Я разрабатываю сайт в VS2010, используя SQL Server 2008 R2 Express и С#.

Мои таблицы такие:

Таблица 1

http://i.stack.imgur.com/3XeSr.png

Я хочу написать запрос, который выберет все строки из таблицы 1, но вместо того, чтобы показывать идентификатор choice1 или (2..3), он возьмет их имя из таблицы 2.

Как мне это сделать?

заранее спасибо


person Sakir Khan    schedule 02.11.2013    source источник


Ответы (2)


Вы можете получить данные из этих двух таблиц, присоединившись к одной и той же таблице три раза.

       SELECT table2.name AS choice1name, table2_1.name AS choice2name, table2_2.name AS                                                                                                                                                                                                                                                                                                choice3name
       FROM  table1 INNER JOIN
             table2 ON table1.choice1 = table2.id INNER JOIN
             table2 AS table2_1 ON table1.choice2 = table2_1.id INNER JOIN
             table2 AS table2_2 ON table1.choice3 = table2_2.id
person Raghubar    schedule 02.11.2013
comment
Я не соединяю идентификатор таблицы 1 с идентификатором таблицы 2, но table1.choice1 to table2.id тогда так же... table1.choice2 to table2.id и... table1.choice3 to table2.id, так что это своего рода отношение "многие к одному" - person Sakir Khan; 02.11.2013
comment
Что ты хочешь. Вы хотите показать имя вместо выбора1, выбора2 и выбора3? - person Raghubar; 02.11.2013

Похоже, вам нужны внутренние соединения. У меня была такая же ситуация несколько недель назад, и меня направили по ссылке, которую я вам даю. Посмотрите здесь, чтобы узнать, какой из них будет работать для вас. здесь или этот Внутренние соединения

person FeliceM    schedule 02.11.2013