В MySQL, как я могу использовать мою ссылку на таблицу дважды для одного выбора? - PullRequest
0 голосов
/ 09 февраля 2012

Пример:

Table: Unit
ID NAME  VALUE
1  Kilo  1000
2  Mega  1000000
3  Giga  1000000000

Table: Storage
ID Title    Drive_value Drive_unit_ID Cache_value Cache_unit_ID 
1  Seagate  100         3             400         1 
2  Scansoft 250         3             80          2 

Отношения:

Storage.Cache_unit_ID references Unit.ID
Storage.Drive_unit_ID references Unit.ID 

Желаемая цель: Сделать выбор* из хранилища, отобразите новые столбцы «AS» Drive и «AS» Cache и отобразите это путем умножения соответствующего Unit.VALUE

 Title     Drive          Cache  
 Seagate   100000000000   400000          
 Scansoft  250000000000   80000000000          

1 Ответ

1 голос
/ 09 февраля 2012

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

SELECT s.Title, u1.VALUE * s.Drive_value AS Drive, u2.VALUE * s.Cache_value AS Cache
FROM Storage s
INNER JOIN Unit u1 ON u1.ID = s.Drive_unit_ID
INNER JOIN Unit u2 ON u2.ID = s.Cache_unit_ID
...