mysql从联接表中删除记录

mysql delete record from joined table

本文关键字:删除 记录 mysql      更新时间:2023-09-26

我在从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[start:0,limit:0]'query1'()

查询代码:DELETE jos_fsdscart*从jos_fsdscart LEFT加入jos_fsdspremed上的jos_fsdscart.mfd=jos_fsdspremade.item_number其中jos_fsdspremade.id=('')ANDjos_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`

我非常怀疑您是否有一个mysql表以这样的方式构建,即"id"被设置为varchar,它将接受类似("jos_fsdspremade.id" multiple="y" )的东西。

您需要从表单中获取id(显示id的地方是可选的),并将它们传递给查询:

WHERE jos_fsdspremade.id = 1

或者如果你想做多人识别:

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