как использовать данные из 2 таблиц и объединить их в одну?

#sql-server-2008

#sql-server-2008

Вопрос:

У меня есть 2 таблицы: 1 — Поиск, а другая — детали.

Таблица поиска

 Identity Type   Value

200 Entity  A
201 Entity  B
202 Entity  C
203 Entity  D
300 SOURCE  X
301 SOURCE  y
  

Подробная таблица

 Sender(int) Reciever(int)   Source(int) State(varchar)
200             203             300             hongkong   
  

В таблице сведений Отправитель, получатель — это объект в таблице поиска с идентификатором в качестве идентификатора.

Моя проблема в том, что когда я пишу запрос так, как Select Sender,Reciever,Source,State from Details я получаю 200,203,300,hongkong , но я хочу получить результат как A,D,X,hongkong . Пожалуйста, помогите.

Комментарии:

1. Используете ли вы анти-шаблон «одна истинная таблица поиска» ?

2. Я не понимаю, что вы говорите. Пожалуйста, объясните четко

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

4. @@Martin Smith: обожаю этот антишаблон!! Видел, как это использовалось на практике, и создатель не был бы убежден в обратном.

Ответ №1:

 SELECT tSen.[Value] as [Sender], tRec.[Value] as [Reciever]
, tSou.[Value] as [Source], D.[State] 
FROM Details as D 
JOIN Lookup as tSen ON D.Sender = tSen.Identity 
JOIN Lookup as tRec ON D.Reciever = tRec.Identity 
JOIN Lookup as tSou ON D.Source = tSou.Identity 
  

Ответ №2:

Используйте СОЕДИНЕНИЕ для обеих таблиц. Это базовый синтаксис SQL

Комментарии:

1. Не могли бы вы привести какой-нибудь пример? Это будет действительно полезно.