我有三个建筑物,EnergyType和EnergyCategory。前两个通过名为build_types的桥表连接。后两个通过具有相关ID(type_ID = cat_ID)来连接。
此连接输出建筑物及其使用的每种能源类型:
SELECT B.building, E.energytype
FROM Buildings b
INNER JOIN build_types bt ON B.build_ID = bt.build_ID
INNER JOIN EnergyTypes e ON bt.type_ID = E.type_ID
ORDER BY B.building;
此连接输出每种能量类型的总数:
SELECT E.energytype, COUNT(*)
FROM Buildings b
LEFT JOIN build_types bt ON B.build_ID = bt.build_ID
LEFT JOIN EnergyTypes e ON bt.type_ID = E.type_ID
GROUP BY E.energytype;
我想要一个select语句,它将返回左侧的建筑物名称和右侧的能量类别的表格,只有描述的类别为“可更新”。我有:
SELECT B.building, E.energytype, E.energycategory
FROM Buildings b
INNER JOIN build_types bt ON B.build_ID = bt.build_ID
INNER JOIN EnergyTypes e ON bt.type_ID = E.type_ID
INNER JOIN EnergyCategories e ON E.cat_ID = E.type_ID
WHERE E.energycategory = 'Renewable';
但我收到错误1066:不是唯一的表/别名'EnergyTypes'。
答案 0 :(得分:1)
您为EnergyTypes
和EnergyCategories
选择了别名“E”。
SELECT B.building, T.energytype, C.energycategory
FROM Buildings b
INNER JOIN build_types bt ON B.build_ID = bt.build_ID
INNER JOIN EnergyTypes T ON bt.type_ID = T.type_ID
INNER JOIN EnergyCategories C ON C.cat_ID = T.type_ID
WHERE C.energycategory = 'Renewable';
应该有用。
答案 1 :(得分:0)
更改其中一个表的别名。为其中一个制作'e'其他东西。