SQL 服务器。关于字段列表中"性别"列的问题含糊不清



问题是是否存在任何性别,年龄,邮政编码组合有多个匹配个体?如果是,有多少这样的组合?我想用genderagepostcode这三列来分组然后用having。但是有一个关于列gender在字段列表是模糊的错误。为什么会这样呢?

这是我的代码

SELECT cd.*, sd.* FROM club_data AS cd
INNER JOIN student_data_anon AS sd 
ON ( sd.gender = cd.gender) AND (sd.age = cd.age) AND (sd.postcode=cd.postcode)
group by gender, age, postcode

首先,应该限定所有表引用。

第二,应该避免返回重复的列名。

最后,限定所有列引用:

SELECT cd.*,
sd.x, sd.y, sd.z  -- list out all *other* columns in sd
FROM club_data cd INNER JOIN
student_data_anon sd
ON sd.gender = cd.gender AND
sd.age = cd.age AND
sd.postcode = cd.postcode;

你可能也不想要GROUP BY。这对您的查询没有意义,因为您从两个表中选择了所有列,并且没有聚合函数。

也许你需要一个ORDER BY

最新更新