SQL查询:获取特定阈值中包含的值

用户名

我有这张桌子:

小路:

idTokenN idPath   token      isTV
   1      p1      test1      true
   2      p1      test2      false
   3      p2      test3      true
   4      p3      test4      false
   5      p3      test5      false
   6      p4      test6      false
   7      p4      test7      true
   8      p4      test8      false
   9      p4      test9      false
   10     p5      test10     true
   11     p5      test11     false
   12     p5      test12     false

关系:

    idTokenN  idTokenN2   rel
       10      11         test

我想获得包括至少一个值Istv“ true”的idPath和包括通过某个阈值(即通过设置最小值和最大值)的idPath。例如,如果将其强加为最小值:2,且最多3个idPath long,那么我只会得到2到3之间的值:

    idPath  token   isTV    rel
      p1    test1   true    null
      p1    test2   false   null
      p5    test10  true    test
      p5    test11  false   null
      p5    test12  false   null

我尝试使用此查询,但部分有效,我不知道如何设置idPath的范围:

SELECT path.idPath, path.token, path.isTV,relation.rel 
FROM path 
    LEFT OUTER JOIN relation ON(path.idTokenN=relation.idTokenN)
WHERE path.idPath IN (
        SELECT path.idPath FROM path WHERE path.isTV='true');
汤玛士

为什么不这样呢?

SELECT path.idPath, path.token, path.isTV,relation.rel
FROM path
LEFT OUTER JOIN relation ON (path.idTokenN=relation.idTokenN)
WHERE path.idPath IN(SELECT DISTINCT path.idPath FROM path WHERE path.isTV='true')
AND path.idPath IN(SELECT DISTINCT path.idPath FROM path GROUP BY path.idPath HAVING COUNT(*) >= 2 AND COUNT(*) <= 3)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章