2012-01-17 10 views
0

私は2つのMySQLテーブルを持っています.1つはフィールドUsernameともう1つはUser_Nameですが、テーブルの1つでレコードを見つけて削除することは可能ですか? ...2つのテーブルから1つのレコードを検索して削除しますか? MySQL PHP

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

私は何かを明らかに欠けているかのように私は感じる。..

おかげで私は、次の試してみたが、それは仕事をdidntの。 カイ

+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が行を削除するテーブル名の前または後に使用される構文の違いがあります。これらは、両方のテーブルからエントリを削除するために働く必要があります。テーブル名の後の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

以下のセクションでは、両方のテーブルまたはいずれかのテーブルからエントリを削除するためのクエリについて説明します。テーブル名の後のFROM使用

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 ' – David

+0

右のセミコロンを間違った場所に置くと正しい構文が使用されるようMySQLサーバのバージョンに対応するマニュアルを確認してください。あなたはそれを修正できますか?更新されたクエリを参照してください。 – Abhay

+0

こんにちは、私は、クエリを変更し、もう一度試して、それはエラーなしで実行したが、私が知っているレコードを使用した後、レコードを返しませんでした。 :\ – David

関連する問題