2012-01-17 3 views
0

두 개의 MySQL 테이블을 가지고 있는데 하나는 Username 필드이고 다른 하나는 User_Name입니다. 테이블 중 하나에서 레코드를 찾아서 삭제할 수 있습니까? ...두 테이블에서 레코드 하나를 찾아서 삭제 하시겠습니까? MySQL PHP

DELETE FROM JB_Employer, JB_Jobseeker WHERE Username='$userName' OR User_Name='$userName' 

내가 뭔가를 분명 누락 것처럼 내가 느끼는 ..

덕분에 나는 다음 시도했다 그러나 그것은 일을 일부러. Kai

+0

오류를 발생시키지 마십시오? User_name 필드가 JB_Employer에 없습니다. – Kristian

+1

아마도 이것을 할 수 있습니다 :'WHERE JB_Employer.Username = '$ userName'OR JB_Jobseeker.User_Name = '$ userName'' – Kristian

+0

당신은 다중 테이블 DELETE 구문 : http://dev.mysql.com/doc/refman/5.0/en/delete.html – webbiedave

답변

1

행을 삭제할 테이블 이름 앞이나 뒤에 FROM을 사용하면 구문에 차이가 있습니다. 테이블 - 이름 후로부터 사용

:이 두 테이블에서 항목을 삭제하는 작업을해야 테이블 이름 앞에서 사용

DELETE JB_Employer, JB_Jobseeker 
FROM JB_Employer INNER JOIN JB_Jobseeker ON JB_Employer.Username = JB_Jobseeker.User_Name 
WHERE JB_Employer.Username= '$userName'; 

:

DELETE FROM JB_Employer, JB_Jobseeker 
USING JB_Employer INNER JOIN JB_Jobseeker ON JB_Employer.Username = JB_Jobseeker.User_Name 
WHERE JB_Employer.Username= '$userName'; 

EDIT 1

아래 섹션에서는 두 테이블 또는 두 테이블 모두에서 항목을 삭제하는 쿼리에 대해 설명합니다. 테이블 - 이름 후로부터 사용

:

DELETE JB_Employer, JB_Jobseeker 
FROM JB_Employer 
LEFT JOIN JB_Jobseeker ON JB_Employer.Username = JB_Jobseeker.User_Name 
WHERE JB_Employer.Username= '$userName'; 

테이블 - 이름 앞에서 사용 :

DELETE FROM JB_Employer, JB_Jobseeker 
USING JB_Employer 
LEFT JOIN JB_Jobseeker ON JB_Employer.Username = JB_Jobseeker.User_Name 
WHERE JB_Employer.Username= '$userName'; 

는 작동 희망!

+0

그것은 작동하지 않았습니다. 내가 알고있는 레코드를 사용하여 테스트했는데이 오류가 발생했습니다. :'SQL 구문에 오류가 있습니다. 'WHERE JB_Employer.Username ='test 'at line 1'근처에서 사용할 올바른 구문에 대해서는 MySQL 서버 버전에 해당하는 설명서를 확인하십시오. – David

+0

맞은 곳의 세미콜론. 고칠 수 있니? 업데이트 된 쿼리를 참조하십시오. – Abhay

+0

안녕하세요, 쿼리를 변경하고 다시 시도했지만 오류없이 실행되었지만 알고있는 레코드를 사용한 후에는 레코드를 반환하지 않았습니다. : \ – David

관련 문제