오픈 소스 프로젝트 - XE 개발 포럼
글수 255
태그 검색시 쿼리에 문제가 있어 보입니다.
SELECT FIRST 20 SKIP 0
"documents".*
FROM
"xe_documents" as "documents",
"xe_tags" as "tags"
WHERE
("documents"."module_srl" in (58) and
"documents"."document_srl" = "tags"."document_srl" and
"tags"."tag" like '%태그%') and
"list_order" < 2100000000
GROUP BY
"documents"."document_srl"
ORDER BY "list_order" asc;
파이어버드 쿼리로 만들어 진거라 좀 지저분합니다.
"FIRST 20 SKIP 0"은 limit 이니까 신경 안쓰셔도 되고요.
아래 문제점입니다.
- "list_order"는 앞에 alias 명이 빠져있습니다. (이건 별 문제가 되지 않습니다.)
- group by 쿼리가 적절치 않다 생각됩니다.
호환성 맞추는게 보통일이 아니네요...
SELECT FIRST 20 SKIP 0
"documents".*
FROM
"xe_documents" as "documents",
"xe_tags" as "tags"
WHERE
("documents"."module_srl" in (58) and
"documents"."document_srl" = "tags"."document_srl" and
"tags"."tag" like '%태그%') and
"list_order" < 2100000000
GROUP BY
"documents"."document_srl"
ORDER BY "list_order" asc;
파이어버드 쿼리로 만들어 진거라 좀 지저분합니다.
"FIRST 20 SKIP 0"은 limit 이니까 신경 안쓰셔도 되고요.
아래 문제점입니다.
- "list_order"는 앞에 alias 명이 빠져있습니다. (이건 별 문제가 되지 않습니다.)
- group by 쿼리가 적절치 않다 생각됩니다.
우선 이쿼리가 firebird에서는 group by 문제로 오류가 발생합니다.
그래서 해결방법이 없을까 하고 검색을 해 봤는데... 이런 쿼리가 오류를 발생하지 않고 결과가 나오는 DB도 있지만 정석은 아니라고 하더군요... group by를 사용해서 정석대로 하려면 group by 뒤에 필드명을 모두 넣어주는게 맞지 않나 합니다.
차라리 group by 쓰지 않고 select 뒤에 distinct 를 쓰는게 어떨까요?
호환성 맞추는게 보통일이 아니네요...




group by 대상만 select를 해야 하는데 저건 query xml을 고쳐야 할 것 같습니다. ^^;;;
1.0.2 이전에 고칠 수 있도록 하겠습니다.
http://trac.zeroboard.com/trac/ticket/442