2012-05-30 2 views
1

나는이 선택과 다른 테이블에서 모든 항목을 계산하려고 :어디에서 sql LIKE 절이 잘못 되었습니까?

내가 자동으로 grupes_main 열 pg_kodas을 선택하지만, 실수가 LIKE 기능에이 쿼리 항상 0을 반환에서 얻을하려는 LIKE 절에서
SELECT id, name, (SELECT count(*) 
        FROM prekes_main 
        WHERE prekes_main.pristKaina = 1 
        and prekes_main.pg_kodas LIKE 'grupes_main.pg_kodas%') as pristKaina 
FROM grupes_main 
WHERE grupes_main.level = 1 
and grupes_main.name <> '' 

? thx

+1

데이터의 모양은 어떻습니까? – gdoron

+0

이 하위 쿼리를 select 문에 넣지 마십시오. where 절과 일치하는 레코드가있을 때마다 계산을 요청할 것입니다! 게다가 두 그룹의 데이터 사이에 조인이 없습니다. 당신의 논리를 수정해야합니다 – Sebas

답변

4
SELECT id, name, 
     (
     SELECT COUNT(*) 
     FROM prekes_main 
     WHERE prekes_main.pristKaina = 1 
       AND prekes_main.pg_kodas LIKE CONCAT(grupes_main.pg_kodas, '%') 
     ) pristKaina 
FROM grupes_main 
WHERE grupes_main.level = 1 
     AND grupes_main.name <> '' 
+0

thx, 그것이 작동 :) –

관련 문제