未知的表multidelete在加入删除mysql php

时间:2011-12-17 17:14:39

标签: php mysql sql-delete

我有几个表链接如下:

  1. 道路(id,名称)
  2. 通过列链接到道路的房屋(id,rid,name,housenumber):“rid”。
  3. 通过列链接到道路的贷款(id,rid):“rid”。
  4. 贷款条目(id,lid,housenumber)按列链接到贷款:“lid”,按房屋号码。
  5. 当用户想要删除房屋时,我必须删除具有特定门牌号的贷款条目。

    所以从房屋ID我获得道路ID,之后我可以获得与该道路相关的贷款,并删除所有带盖子和房屋号码的贷款条目。

    我为此创建了带有子选择的查询,但我想连接它可能会快得多。 我住在这里。我甚至不确定我做了我想要的,我收到一条mysql错误信息:

      

    “MULTI DELETE中的未知表格'le'”。

    我尝试了一些变化,但无法弄明白。

    我的查询:

    DELETE le 
    FROM `roads` AS r 
    LEFT JOIN `loans` AS l ON l.rid = r.id 
    LEFT JOIN `loan-entries` AS le ON le.lid = l.id 
    LEFT JOIN `houses` AS h ON h.rid = r.id 
    WHERE h.id = '" . $_POST['id'] . "' 
      AND le.housenumber = h.housenumber
    

1 个答案:

答案 0 :(得分:1)

我知道回答这个问题有点晚了,但问题是你只能删除最左边的表格。 为此,您需要重新组织您的加入。当你使用左连接从'le'表中删除时,你真的只需要来自'r'和'l'表的那些通过内连接连接的值,所以从'le'表开始然后是内连接'r'和' l'然后继续'h'。