2013-07-18 2 views
2
Insert into tbproppayh (id_payment) 
SELECT s.id_payment FROM session.set_values s 
WHERE EXISTS id_payment; 

Thu Jul 18 10:21:42 2013 실행 중. . .SQL의 구문 오류를 이해하지 못했습니다.

INSERT INTO tbproppayh (id_payment) 
SELECT s.id_payment 
FROM session.set_values s 
WHERE id_payment IS NOT NULL; 

WHERE EXISTS 하위 쿼리를 필요로 :

E_US09C5 line 1, Syntax error on 'id_payment'. The correct syntax is: 
     SELECT [ALL|DISTINCT] target_list 
      FROM table(s) 
      [WHERE search_cond] 
      [GROUP BY col(s)] 
      [HAVING search_cond] 
    [UNION subselect] 
    [ORDER BY col(s)] 
     (Thu Jul 18 10:21:42 2013) 

+3

내가 당신의 오류가'EXISTS ...'일부라고 말할 것입니다. –

+1

어떤 서버를 사용하고 있습니까? – asafrob

+0

INSERT INTO TABLE_NAME (특성) VALUES (설명 취득 값) –

답변

4

시도 계속

WHERE EXISTS (SELECT ... FROM ...) 

this example를 참조하십시오.

귀하의 코멘트 후, 단지 중복 값을 삽입하지 않도록 DISTINCT를 사용

INSERT INTO tbproppayh (id_payment) 
SELECT DISTINCT s.id_payment 
FROM session.set_values s 
WHERE id_payment IS NOT NULL; 
+0

에 대한 확인을 사용하여 그게 괜찮아 보이지만 지금은 삽입 오류에 대한 중복 키가 – louise

+0

그건 독립적입니다. 즉, set_values ​​테이블에 id_payment 값이 중복되어 있고 그 id-payment는 tbproppayh의 기본 키입니다. –

+0

나는 지금 내가 이해할 것, 내 설정 값 테이블에 중복이 있다는 것을 알았어. 어떻게 그걸 막을 수 있을까? – louise