2012-01-18 16 views
0

私は以下のテーブルを持っています:Person、Person_Categories、Persons_PersonCategoriesはn:m関係のリンクテーブルです。クエリ内のステートメントの挿入、更新、削除

次のクエリも作成しましたが、insert文が正しく機能しません。挿入、更新、削除は別々の文です。私が取得エラーメッセージは、「列カウントは1行で値の数と一致していない」である

SELECT Persons_PersonCategories.PersonID, PrsCategory 
FROM Person_Categories 
INNER JOIN Persons_PersonCategories 
ON Persons_PersonCategories.PrsCatID = Person_Categories.PrsCatID 

INSERT INTO Persons_PersonCategories 
VALUES (:PrsCategory) 

UPDATE Persons_PersonCategories 
SET Persons_PersonCategories.PrsCatID = :PrsCatID 
WHERE Person_Categories.PrsCatID = :OLD PrsCatID 
AND Persons.PersonID = :OLD PersonID 

DELETE FROM Persons_PersonCategories 
WHERE Person_Categories.PrsCatID = :PrsCatID 
AND Persons.PersonID = :PersonID; 

すべてのヘルプは、 ZAN

+0

あなたのinsert文、元に列リストを指定する必要があります。テーブルに挿入(COL1、COL2)の値(:val1と、:val2の) –

+1

州あなたのテーブルのスキーマをしてください。 –

+0

これは1つのクエリのようには見えません。むしろ、それは4つの別々のステートメントのように見えます。 – dasblinkenlight

答えて

1

を理解されるであろう更新されている列を指定します。

INSERT INTO Persons_PersonCategories (PrsCategory) VALUES (:PrsCategory) 

あなたがしようとしていることを正しく推測していない場合は、PrsCategoryの代わりに正しい列名に置き換えてください。あなたがPERSONIDを追加する必要があるよう

0

が見える

INSERT INTO Persons_PersonCategories(PersonID, PrsCatID) 
VALUES (:PersonID, :PrsCatID) 
関連する問題