我有这张桌子:
小路:
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] 删除。
我来说两句