【发布时间】:2016-03-03 12:29:51
【问题描述】:
我有三个表 Buildings、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: Not unique table/alias 'EnergyTypes'。
【问题讨论】:
-
我认为错误是因为您有两个表别名为 e。换一个
-
type_ID = cat_ID - 这听起来像是一场等待发生的事故
-
将能源类别的别名设为喜欢 ec
标签: mysql