2012-01-07 8 views
0

私は削除を選択しているテーブルに結合されているレコードを削除する際に問題があります。結合テーブルのmysql削除レコード

私は、jos_fsdspremade.idをautoincrementキーと典型的な削除IDとして使用する、チェックボックスを選択し、私のウェブサイト上のjavascriptテーブルインターフェイス上の送信ボタンをクリックすることによって、次のdeleteステートメントを実行します。

DELETE jos_fsdscart.* 
FROM jos_fsdscart 
LEFT JOIN jos_fsdspremade ON jos_fsdscart.mfd = jos_fsdspremade.item_number 
WHERE jos_fsdspremade.id = ('<input name="jos_fsdspremade.id" multiple="y" />') AND jos_fsdscart.id4 = '<code type="user" />' 

は何もjos_fsdscartから削除されます。次のようにログがある: 'Query1を'()

クエリコード:DELETE属性の

置換値は、「idが '61'

のexecuteQuery [:0、リミット0を開始する]でありますjos_fsdscart。* jos_fsdscart左から JOIN jos_fsdspremade ON jos_fsdscart.mfd = jos_fsdspremade.item_number WHERE jos_fsdspremade.id =( '')AND jos_fsdscart.id4 = ''

ご覧のとおり、結合されたテーブルからの選択に基づいて、jos_fsdscartテーブルからレコードを削除しようとしています。

もし役に立ちましたら、javascriptインターフェイスから選択しているmysqlクエリです:

SELECT 
    `<output name="jos_fsdspremade.owner_id" hidden="y" />`, 
    `<output name="jos_fsdspremade.id" title="FSDS" width="70" text="view" type="next" query="24" task="showResults" linktype="open" sizex="980" sizey="730" />`, 
    `<output name="jos_fsdspremade.item_number" title=".pdf" width="70" text="SAVE" type="link" url="/menumanager/images/pdf/%s.pdf" />` , 
    `<output name="jos_fsdspremade.pic" title="Image" type="link" linktype="img" url="/menumanager/images/preman/%s" sizex="30" sizey="30" width="65" />`, 
    `<output name="jos_fsdspremade.title" title="Product Name" width="300" filter="y" />`, 
    `<output name="jos_fsdspremade.brand" title="Brand" width="300" filter="y" />`, 
    `<output name="jos_fsdspremade.manufacturer" title="Distributor" width="200" filter="y"/>`, 
    `<output name="jos_fsdspremade.product_type" width="200" filter="y"/>` 
FROM jos_fsdspremade, jos_fsdscart 
WHERE `published`=1 AND jos_fsdscart.mfd = jos_fsdspremade.item_number AND `id4` = '<code type="user" />' 
ORDER BY `title` 

答えて

0

私は、 'id'が("jos_fsdspremade.id" multiple="y")のようなものを受け入れるvarcharに設定されているように、mysqlテーブルを作成していることは間違いありません。

あなたが(IDが選択され表示されます)フォームからIDを取得し、クエリに渡す必要があります。

WHERE jos_fsdspremade.id = 1 

それともmultipe idを行いたい場合:

WHERE jos_fsdspremade.id in (1, 2, 3) 
関連する問題