sql - 仅当值存在于 SQL 的另一列中时,如何选择列的值?
问题描述
我有一个稍微复杂的问题。有几列。从本质上讲,逻辑是有一堆标题。每个标题都有一个唯一的标识符,它们是一个系列的一部分。正如“现在表”中明显的那样,有几个不同的哥布林:哥布林、哥布林 2 和哥布林 3。如果它们是不同的标题,它们具有单独的唯一标识符,但由于它们都是哥布林,因此它们具有唯一的系列标识符。这些头衔/生物可以有任何家。但索伦只拥有巢穴中的那些。
我想弄清楚的是,索伦拥有的东西与其他人拥有的其他东西相比,索伦所拥有的百分比是索伦独有的。因此,例如,吸血鬼是索伦唯一拥有的,因为没有其他人拥有它。如果 Sauron 拥有唯一的系列标识符,那么我想要它。
我想解决这个问题的方法是找到索伦拥有的一切。根据 Sauron 拥有的唯一系列标识符,我想找到表中的所有内容。目前唯一的系列标识符很少,所以很容易像唯一系列标识符 = 'Gob' 那样手动输入它,但是如果有很多,我该怎么做呢?我想找到 Sauron 拥有的所有东西以及 Sauron 也拥有的唯一系列标识符的所有匹配项。因此,不属于 Sauron 的怪物和巨魔之类的东西不存在。并想象这张桌子是一百万或更多,而不是一小组东西。
感谢您的帮助,并为这个词呕吐感到抱歉,想不出更好的方法来解释这一点!:D
要展示的示例表
解决方案
选择 Sauron 的所有唯一系列标识符。然后选择具有这些唯一系列标识符的所有标题。
select * from mytable
where unique_series_identifier in
(
select unique_series_identifier
from mytable
where evil_lord = 'Sauron'
)
order by unique_series_identifier, unique_identifier;
我建议为此查询设置以下索引。一种是查找 Sauron 标题,另一种是按唯一系列标识符查找标题。
create index idx1 on mytable ( evil_lord, unique_series_identifier );
create index idx2 on mytable ( unique_series_identifier );
推荐阅读
- r - 如何从 R data.frame 中删除 Jupyter 中的类型行?
- svelte - 是否可以将纤细组件的(最终结果)HTML 代码呈现为字符串(转义/显示原始 HTML 代码)?
- reactjs - 反应:“TypeError:未定义不是函数”
- php - PHP ImageMagick 脚本在通过命令行执行时不起作用
- r - 错误停止 R 代码尽管 tryCatch。我怎样才能让它继续运行?
- python - android termux上的python套接字连接错误
- github - 是否可以使用原始问题分叉 github 存储库?
- python - 尝试使用 try / except 函数更改多个变量
- javascript - 仅使用 JS / jQuery 将状态从 PrimeFaces onstart 转移到 oncomplete
- scilab - 我试图将 matlab 移动到遗传算法的 scilab 语法,但选择函数有错误。像这样