mysql内部联接表列“id”不明确

3gtaxfhh  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(372)

此代码创建了错误。
错误代码:1052。where子句中的列“id”不明确

SELECT h1.name, h1.gender,h2.gender
        FROM hampster h1, hampster h2,partner p
        INNER JOIN partner on h1.ID = partner.ID1
        INNER JOIN children on h2.ID = children.ID1
WHERE h1.id = p.id1
  AND h2.id = p.id2
  AND h1.gender = h2.gender
  AND EXISTS (SELECT c.id1
            FROM children c
            WHERE c.id1 = p.id1
             OR  c.id1 = p.id2)
ORDER BY h1.gender, h1.name;

这是在我将hampsters h2添加到查询中时创建的。我的目标是使用inner join来组合hamspter表的两个示例,并且仍然使用'h1'和'h2'来引用它们。
这是查询的预期输出

h1.name    h2.name gender
Alex        King    0
Grant       Alex    0
Jack        Grant   0
Cathy       Amy     1
Trish       Amy     1
cngwdvgl

cngwdvgl1#

在where条件中缺少表别名,服务器不知道您使用的是哪个id列。
试试这个:
其中h1.id=101

相关问题