mysql - SQL查询: get values included from a certain threshold

标签 mysql 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包括通过某一阈值,即通过设置最小值和最大值。例如,如果将 idPath 长度设置为最小值:2,最大值为 3,我将只能得到 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)

关于mysql - SQL查询: get values included from a certain threshold,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22666124/

相关文章:

sql - Transact-SQL 字符串自连接

sql - Excel数据表(SQL查询): Once deleted column no longer shows up

mysql - 添加您在 mysql 中创建的列?

sql - 更新以在单个语句中切换 bool 列

c# - SubSonic3 - 列 'CategoryID' 不能为空

mysql - 自减级联主键

java - 如何使 JSP 函数仅在调用时运行?

sql - 将参数传递给 ruby​​ on rails 中的原始 SQL 查询

mysql - 在mysql中创建表时出现日期时间错误

MYSQL如何确保存在多个关联