2011-05-03 3 views
0

작동하지 :MySQL의 쿼리 내 쿼리가 작동하지 않는 이유를 이해가 안 phpMyAdmin을

INSERT INTO `jos_acymailing_subscriber`(`sleep_breathe`) 
    VALUE (`1`) 

SELECT `subid` 
    FROM `jos_acymailing_listsub` 
    WHERE `listid` = `8` 
    LEFT JOIN `jos_acymailing_subscriber` 
    ON `jos_acymailing_listsub`.`subid` = `jos_acymailing_subscriber`.`sleep_breathe` 

들으

나는 (메일 링리스트에의 ID를 등록하는 사용자의 테이블이 관심있는 목록은 8). 구독 테이블은 내가 목록 8

그래서 가입 된 사용자에 대한 1 필드에 정수를 추가 할 사용자 테이블에서 관계

"많은 많은"A의 단순 중개 테이블 먼저 listid가 8 인 중개 테이블에있는 사용자를 선택하고 사용자 테이블에있는 sleep_breathe 필드에 1을 추가해야합니다.

사용자 테이블 구조 : 이름 : jos_acymailing_subscriber

필드 형식 널 기본 댓글 하위 ID의 INT (10) 아니오
이메일 VARCHAR (200) 아니오
사용자 ID INT (10) 예 NULL
이름 varchar (250) 아니오
만들어 INT (10) 예 NULL
확인 TINYINT (4) 아니오 0
활성화 TINYINT (4) 1 번
동의 TINYINT (4) 아니오 (1)하지
의 HTML TINYINT (4) 1 번
키 VARCHAR (250) 예 NULL
ersmembershipnumber의 VARCHAR (250) 예 NULL
첫 VARCHAR (250) 예 NULL
제목 VARCHAR 453,210 의 IP VARCHAR (100) 예 NULL (250) 예 NULL
ERJ의 VARCHAR (250) 예 NULL
의 ERR VARCHAR (250) 예 NULL
논문의 VARCHAR (250) 예 NULL
VARCHAR를 흡입 (250) 예 NULL
membershipcategory의 VARCHAR (250) 예 NULL
mship_status의 VARCHAR (250) 예 NULL
만성 폐쇄성 폐 질환 VARCHAR (250) 예 NULL
sleep_breathe의 VARCHAR (250) 예 NULL
프로 VARCHAR (250) 예 NULL

중개자 테이블 구조입니다 : 이름 : jos_acymailing_listsub

필드 형식 널 기본 댓글 listid의 SMALLINT (11) 아니오
하위 ID의 INT (11) 아니오
SUBDATE의 INT (11) 예 NULL
unsubdate INT (11) Y ES NULL
상태 TINYINT (4) 아니오

+1

정확히 작동하지 않는 항목은 무엇입니까? 어떤 오류 메시지가 나타 납니까? –

+2

두 쿼리입니다. – Thilo

+0

두 개의 쿼리가 있습니다 ... 하나씩 실행 – diEcho

답변

3

나는 문제는 당신이 VALUES 대신 VALUE 넣어 가지고 생각합니다.

삽입 할 값이 하나 뿐인 경우에도 VALUES으로 유지됩니다.

+0

Thx하지만 여전히 작동하지 않습니다. – Wiglaf

0

다른 사람들이 말했듯이 그것은 두 가지 쿼리입니다. 또한 VALUE이 (가) VALUE가 아닙니다. 셋째, MySQL이 JOIN을 허용하지는 않습니다.검색어가

INSERT INTO `jos_acymailing_subscriber`(`sleep_breathe`) VALUES (`1`); 

SELECT `subid` 
FROM `jos_acymailing_listsub` 
LEFT JOIN `jos_acymailing_subscriber` 
ON `jos_acymailing_listsub`.`subid` = `jos_acymailing_subscriber`.`sleep_breathe` 
WHERE `listid` = `8; 
0

이어야합니다. 해당 문구에는 몇 가지 오류가있을 수 있습니다.

  • SELECT 문에서 검색 한 값을 삽입하려면 VALUES 절이 필요하지 않습니다 (실제로는 오류입니다).
  • 숫자는 따옴표 또는 백틱으로 입력 할 수 없습니다.
  • FROM 및 LEFT JOIN 키워드의 순서가 뒤섞입니다.

    INSERT INTO jos_acymailing_subscriber (sleep_breathe) 
    SELECT 1 
    FROM jos_acymailing_listsub 
        LEFT JOIN jos_acymailing_subscriber 
        ON jos_acymailing_listsub.subid = jos_acymailing_subscriber.sleep_breathe 
    WHERE listid = 8 
    

    하나의 팁 :

쿼리가 될 것 SELECT에서 검색 값을 삽입하는 당신은 당신이 그들을 필요로 무엇을 어디에 혼동하지 않도록 alltogether 지칠대로 지친 역 따옴표를 잊어 버려.

+0

오케이 저는 꽤 잘못 생각하고 있습니다. sleep_breathe 필드에 1을 삽입하고 싶습니다. 그러나 listid에 가입 한 구독자는 8입니다. 왼쪽 삽입 선택과 같은 삽입을 원했습니다 ... – Wiglaf

+0

@Wiglaf : 내 편집 참조 –

+0

저는 아닙니다 물론 이해할 수 있습니다. 삽입 할 값은 어디에 두어야합니까? – Wiglaf

0

(1) 삽입물에 이 아닌 VALUES이어야합니다. (2) left joinfrom 절의 일부입니다. where 절을 끝까지 이동하십시오.

관련 문제