示例:
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”驱动器和“AS”缓存,并通过乘以适当的 Unit.VALUE 来显示此内容
Title Drive Cache
Seagate 100000000000 400000
Scansoft 250000000000 80000000000
最佳答案
只要为连接的表指定别名,您就可以多次连接同一个表:
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
关于mysql - 在 MySQL 中,如何对单个选择使用两次表引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212634/