-3

此代码创建了错误。

错误代码: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;

这是在我将hampster h2添加到我的查询中时创建的。我的目标是使用内部连接来组合 hamspter 表的两个实例,并且仍然使用“h1”和“h2”来引用它们。

这是查询的预期输出

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

1 回答 1

-2

您在 where 条件下缺少表别名,服务器不知道您使用的是哪个 ID 列。

试试这个:

其中 h1.ID = 101

于 2018-11-01T03:42:21.073 回答