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

首先表信息:



我的问题:
我需要来自vader的rnaam(具有dnr值),还需要孩子的rnaam。
我该如何实现?

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

表格内容:



您可以在此图片中看到带有dnr代码的“ vader”列。
例如,此图片的第二行具有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'

关于mysql - MySQL-两次使用表数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23968817/

10-11 02:56