2013-01-02 2 views
0

나중에 일부 PHP에서 사용하기 위해 "일치"를 정의하고 있으므로 선택 항목에 정의한 이유가 무엇입니까? 이 쿼리를 작동시키지 못하는 것 같습니다 ... 구문 분석 오류가 발생합니다. 어떤 아이디어?반 결합을 사용하는 SQL 쿼리

SELECT 
    aif_id, 
    fee_source_id, 
    company_name_per_sedar, 
    document_filing_date, 
    NVL a_aif_remaining.aif_id, 0, 1 match 
FROM a_aif, a_aif_remaining 
LEFT JOIN a_aif_remaining ON a_aif_remaining.aif_id = a_aif.aif_id 
ORDER BY aif_id DESC; 

이 또한 작동하지 않습니다 MATCH가 예약어이기 때문에

SELECT 
    aif_id, 
    fee_source_id, 
    company_name_per_sedar, 
    document_filing_date, 
    CASE IF a_aif_remaining.aif_id THEN 0 ELSE 1 match 
FROM a_aif, a_aif_remaining 
LEFT JOIN a_aif_remaining ON a_aif_remaining.aif_id = a_aif.aif_id 
ORDER BY aif_id DESC; 

답변

3

당신이 오류가 발생하고있는 이유입니다. 그것을 뒷걸음질로 빠져 나가야합니다. 컬럼의 값이 NULL 경우 여기

이 시도 예약어의 목록은, 그것은 (당신은 단순히 IF를 사용할 수 CASE WHEN...

SELECT aif_id, 
     fee_source_id, 
     company_name_per_sedar, 
     document_filing_date, 
     CASE 
      WHEN a_aif_remaining.aif_id IS NULL -- you should have condition on this line 
      THEN 0 
      ELSE 1 
     END `match` 
FROM a_aif 
     LEFT JOIN a_aif_remaining 
      ON a_aif_remaining.aif_id = a_aif.aif_id 
ORDER BY aif_id DESC; 

해야한다 코드를 최소화하려면) 예 :

SELECT aif_id, 
     fee_source_id, 
     company_name_per_sedar, 
     document_filing_date, 
     IF(a_aif_remaining.aif_id IS NULL, 0, 1) `match` 
FROM a_aif 
     LEFT JOIN a_aif_remaining 
      ON a_aif_remaining.aif_id = a_aif.aif_id 
ORDER BY aif_id DESC; 
+0

감사합니다. JW! 매력처럼 작동 – Ben

+0

당신은 오신 것을 환영합니다! ': D' –

+0

죄송합니다. 감사! – Ben