2012-01-07 68 views
0

我無法從mysql表中刪除記錄,該表中加入了我正在選擇從中刪除的記錄。mysql從加入的表中刪除記錄

我通過選擇一個複選框並在我的網站上的一個javascript表格界面上點擊提交按鈕來執行以下刪除語句,該界面使用jos_fsdspremade.id作爲其自動增量鍵和典型的刪除ID。

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刪除。日誌如下:

代用值屬性的 'id' 是 '61'

的executeQuery [開始:0,限制:0] 'QUERY1'()

查詢代碼:DELETE jos_fsdscart。* FROM LEFT 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'設置爲varchar的方式構建的mysql表,它將接受像("jos_fsdspremade.id" multiple="y")這樣的東西。

您需要從形式(地方出現的ID是可選的)得到的ID,並將它們傳遞到查詢:

WHERE jos_fsdspremade.id = 1 

或者,如果你想要做multipe IDS:

WHERE jos_fsdspremade.id in (1, 2, 3)