mysql - 在 MySQL 中,如何对单个选择使用两次表引用?

标签 mysql sql database relational-database

示例:

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/

相关文章:

mysql - 选择特定列具有最高值的行

php - 为什么使用innoDB和事务?

php - Mysqli从表错误获取值

mysql - 如何使用mysql在给定日期中按另一列查找列组

sql - 导入数据库导致字符集错误

sql - 显示来自在其 session 中看到 X 页的用户的交易

java - 使用 java 在 HSQL 数据库中出现异常 - 用户缺乏权限或未找到对象错误

database - Linux 中的开源集群 SQL 数据库

mysql - sql 性能 - 从多个表获取时的查询设计

php - MySQL:当某物等于 NULL 时会发生什么?