MySQL-两次使用表数据
我有一个关于MySQL中的查询的问题 首先,表格信息: 我的问题: 我需要维德的rnaam(具有dnr值),还需要孩子的rnaam。 我怎样才能做到这一点 我尝试了一些次选择,但没有成功 表格内容: 您可以在这张图片中看到带有dnr代码的“维德”列。 例如,这张图片的第二行有dnr代码39,这是dnr代码为1的父亲的孩子 我现在的问题是:MySQL-两次使用表数据,mysql,mysql-workbench,Mysql,Mysql Workbench,我有一个关于MySQL中的查询的问题 首先,表格信息: 我的问题: 我需要维德的rnaam(具有dnr值),还需要孩子的rnaam。 我怎样才能做到这一点 我尝试了一些次选择,但没有成功 表格内容: 您可以在这张图片中看到带有dnr代码的“维德”列。 例如,这张图片的第二行有dnr代码39,这是dnr代码为1的父亲的孩子 我现在的问题是: select rnaam as rnaam_vader, rnaam as kind, gesl as gesl_kind from dier j
select rnaam as rnaam_vader, rnaam as kind, gesl as gesl_kind from dier
join soort on soort.snr = dier.snr
where soort.nsnaam = 'chimpansee'
示例行:
father child gender
BIGBOSS POEKIE V
如评论中所述:
您正在处理表上的名称别名,因此请小心使用别名,以免在以后如何引用别名时出现问题
由于父亲和孩子[rnaam]的列名相似,而且请求性别[gesl]时含糊不清,因此这里应该有一个判别词-,这就是为什么这里使用别名。
SELECT
k.rnaam as kind,
v.rnaam as vader,
v.gesl
FROM dier v
JOIN dier k
ON v.dnr = k.vader
JOIN soort s
ON s.snr = v.snr
where
s.nsnaam = 'chimpansee'
您加入的是
snr
列,但是,正如您所说,关系在dnr
和vader
上。是的,查询的条件是只显示“黑猩猩”行。这个信息在表'soort'中,这就是我加入snr的原因。这与我的问题无关。如果我没有误解的话,你需要两列孩子和父亲:选择f.rnaam作为父亲,c.rnaam作为孩子从dier c内部加入dier f on c.dnr=f.vader
这是可行的!但我无法将我的情况或“性别”添加到结果中。这就是我现在拥有的:选择k.rnaam作为种类,v.rnaam作为维德,dier.gesl来自dier v join dier k on v.dnr=k.vader join soort on soort.snr=dier.snr其中soort.nsnaam='chimpansee'
它在字段列表中给出了'dier.gesl'未知列'的错误。就像黑猩猩的情况。性别是什么?孩子还是父亲?检查子项:选择k.rnaam作为种类,v.rnaam作为维德,v.gesl从dier v join dier k在v.dnr=k.vader join soort s在s.snr=v.snr,其中s.nsnaam='chimpansee'
更清楚一点。我会用这个练习更多。谢谢