大家好我有一个关于如何从SQL中的一组值中选择值的问题,我的代码如下所示:
{{1}}
()中的代码返回多个作者,但是当我运行此查询时,它只获取一个作者的值。我该怎么做才能从所有作者()部分回报中获得价值?
答案 0 :(得分:1)
使用
Select distinct T.subreddit from reddit T
where EXISTS
(select author from reddit where link_id = 't3_j56j2'and author = T.author);
答案 1 :(得分:0)
我想你只想要IN
代替:
Select distinct subreddit from reddit
where author IN (select author from reddit where link_id = 't3_j56j2');
注意:子查询中不需要distinct
。
答案 2 :(得分:0)
我建议使用EXIST而不是IN语句。
IN语句将在IN语句中执行完整查询。在下面的示例中(将从reddit中选择作者,其中link_id =' t3_j56j2')将被执行,然后与作者中的值进行比较
Select subreddit from reddit
where author IN (select author from reddit where link_id = 't3_j56j2');
如果您使用EXISTS:
Select subreddit from reddit t
where EXISTS(select rownum from reddit where link_id = 't3_j56j2' and author = t.author);
存在的查询将在第一次匹配时停止执行,并且将是更好的性能选择。