MySQL-两次使用表数据

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

我有一个关于MySQL中的查询的问题

首先,表格信息:

我的问题: 我需要维德的rnaam(具有dnr值),还需要孩子的rnaam。 我怎样才能做到这一点

我尝试了一些次选择,但没有成功

表格内容:

您可以在这张图片中看到带有dnr代码的“维德”列。 例如,这张图片的第二行有dnr代码39,这是dnr代码为1的父亲的孩子

我现在的问题是:

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'
更清楚一点。我会用这个练习更多。谢谢