0
DBMS는 Mysql을 사용하고 있습니다.SQL 쿼리 : join
경로 테이블 : 나는이 테이블이
id idSentence idPath token isTV idC
1 s0001 p1 test1 true ic000041
2 s0001 p1 test2 true ic000041
3 s0002 p2 test3 true ic000042
4 s0002 p3 test4 false ic000042
5 s0002 p3 test5 true ic000042
6 s0002 p4 test6 false ic000042
7 s0002 p4 test7 true ic000042
8 s0002 p4 test8 true ic000042
9 s0002 p4 test9 false ic000042
10 s0003 p5 test10 false ic000044
11 s0003 p5 test11 false ic000044
12 s0003 p5 test12 false ic000044
13 s0003 p6 test13 false ic000044
14 s0003 p6 test14 true ic000044
관계 테이블 :
id id2 rel
3 4 nsubj
4 5 dobj
6 7 pobj
8 9 nsubjpass
10 11 pobj
내용 테이블 :
idC tag
ic000040 a
ic000041 p
ic000042 div
ic000043 b
ic000044 i
내가 각 idSentence에 대한 (쿼리를 만들려면 경로 테이블) 다음 조건을 가진 idSentence, idPath, tokens, isTV, rel 및 tag가있는 각 튜플을 선택합니다.
- 나는 내가 얻는 경로 테이블에 대해 예를 들어, 2, 3 (사이 idPath의 독특한에만 길이를 선택합니다 isTV
- 적어도 하나 개의 값이 '사실'을 포함에만 idPath을 선택합니다 다음과 같은 길이 : 1, 3 및 2 다음 쿼리 : select count (distinct (idPath)) cc as idSentence에 의해 경로 그룹에서; 그래서이 경우 나는 단지 3과 2를 얻고 싶다.);
- 각 idPath의 길이를 2와 3 사이에서 선택하고 싶습니다. (예 : idPath에 의해 경로 그룹에서 cc로 select 쿼리 (*)를 선택하면 다음과 같이 나타납니다 : 2,1,2,4,3, 2 나는 단지 값을 선택합니다 : 2,2,3,2)
나는이 쿼리 생성 :
SELECT p.idSentence, p.idPath, p.token, p.isTV, r.rel, t.tag
FROM path p LEFT OUTER JOIN relation r
ON (p.id = r.id) JOIN content t ON(p.idC=t.idC)
JOIN
(select idPath, max(case when p.isTV = 'true' then 1 else 0 end) as HasTv,
(case when COUNT(*) between 2 and 3 then 1 else 0 end) as Has
from path p
group by idPath
) pf
on p.idPath = pf.idPath and
pf.HasTv = 1 and pf.Has = 1;
을하지만 조인 조건도 중앙 추가해야합니다 :
을 select count(distinct(idPath)) as cc from path group by idSentence
추가하려면 검색어를 어떻게 수정할 수 있습니까? 조건? 다음 문
select count(*) as cc from path group by idPath
:
는 이미 조건을 추가 한 QUERY