我有一个鸟类学名数据库,想获取与亚种相关的物种 ID。我可能需要使用内部连接查询,但在构建它时遇到了麻烦。我可以使用函数 SubString(sciname, 1,locate(' ', sciname,locate(' ', sciname) + 1)) 从亚种 sciname 中提取物种学名 (sciname),并尝试使用该函数进行查询以找到我想要的 eID,但它给出了一个空结果 - 可能是因为它一次只查看一条记录。
电子身份证 | 电子商务 | 西卡纳姆 |
---|---|---|
三十九 | 物种 | 夜隐孢子虫 |
40 | 物种 | 黑头隐孢子虫 |
17341 | 亚种 | 黑头隐孢子虫 |
17342 | 亚种 | 黑盖隐孢子虫 |
41 | 物种 | 布卡隐孢子虫 |
17343 | 亚种 | 布卡隐孢子虫 |
17344 | 亚种 | 哥斯达黎加隐藻 |
四十二 | 物种 | 棣棠隐孢子虫 |
我想要的输出是每个亚种的 eID 及其相关物种的 eID。
eID1 | eID2 |
---|---|
17341 | 40 |
17342 | 40 |
17343 | 41 |
17344 | 41 |
我尝试过这个但是没有用。
select e1.eid, e2.eid from species as e1
left join species as e2
on e1.sciname=e2.sciname
where e1.ecat="subspecies"
and e2.sciname=(select SubString(e1.sciname, 1, locate(' ', e1.sciname, locate(' ', e1.sciname) + 1)));
小提琴