SQL实现同一表的两个字段对相同的另一张表JOIN查询
郝伟 2021/10/02
假设现在有以下两张数据表,Types表存储的是水果类型,而Fruits表中对水果类型有引用。
# Types表
ID TypeName
-------------
1 Banana
2 Orange
3 Pear
4 Melon
# Fruits 表
ID BaseType MainType
---------------------
1 2 1 Category1
2 1 3 Category2
3 3 2 Category3
现在的问题是在Fruits表中有两处索引 BaseType和 MainType 同时对Types表进行引用。在创建视图时,希望得到以下的查询结果。
ID BaseTypeName MainTypeName
----------------------
1 Orange Banana
2 Banana Pear
3 Pear Orange
在SQL中,可以实现对同一表的两次JOIN引用,具体实现代码如下所示:
SELECT Fruits.ID, Types.TypeName AS BaseTypeName, Types1.TypeName AS MainTypeName FROM Fruits INNER JOIN Types ON Fruits.BaseType = Types.ID INNER JOIN Types AS Types1 ON Fruits.MainType = Types1.ID