SQL использует несколько значений из таблицы, чтобы получить соответствующие значения из одного поля в другой таблице - PullRequest
0 голосов
/ 09 октября 2018

У меня есть две таблицы, attr_tbl и freq_tbl.

поля attr_tbl:

attr_ky - numeric
attr_name - character

Пример файла attr_tbl:

attr_ky | attr_name
   1    |  driver 
   2    |  athlete 
   3    |  parent 

поля freq_tbl:

att1 - numeric
att2 - numeric
att3 - numeric
freq - numeric

Пример freq_tbl:

att1 | att2 | att3 | freq
  1  |   2  |  3   | 1000 

Я хотел бы добавить еще три столбца к freq_tbl .
att1_name : attr_name, соответствующийatt1
att2_name : attr_name соответствует att2
att3_name : attr_name соответствует att3

Желаемый результат:

att1 | att2 | att3 | freq | att1_name | att2_name | att3_name
   1 |   2  |   3  | 1000 |  driver   |  athlete  |  parent

Я знаю, как сделать это с несколькими операторами SQL, но я хотел бы знать, как это сделать с одним.Заранее спасибо!

1 Ответ

0 голосов
/ 09 октября 2018

Вы можете попробовать это.

select 
    T.att1, 
    T.att2, 
    T.att3, 
    T.freq, 
    A1.attr_name AS att1_name, 
    A2.attr_name AS att2_name, 
    A3.attr_name AS att3_name
from freq_tbl T
    LEFT JOIN attr_tbl A1 ON T.att1 = A1.attr_ky
    LEFT JOIN attr_tbl A2 ON T.att2 = A2.attr_ky
    LEFT JOIN attr_tbl A3 ON T.att3 = A3.attr_ky
...