【问题标题】:delete one table with join on multiple table with where condition删除一个表并在具有 where 条件的多个表上连接
【发布时间】:2017-10-15 14:47:31
【问题描述】:

我正在尝试从 Skills_jobs 表中删除一行

以下是我的查询

delete from skills_jobs skj inner join jobs j on skj.jobid=j.id inner join users u on u.id=j.userid where u.id=$userid

但它会引发以下错误;

致命错误:未捕获的异常 'Exception' 带有消息 'You have an SQL 语法错误;检查与您对应的手册 MySQL 服务器版本,用于在 'skj inner join 附近使用正确的语法 工作 j on skj.jobid=j.id 内部加入用户 u on u.id=j.userid wher' at 第1行查询:从skills_jobs skj中删除inner join jobs j on skj.jobid=j.id 内部加入用户 u on u.id=j.userid where u.id=41

【问题讨论】:

  • 您错过了on 的加入声​​明。
  • @Shaunak Shukla 我已经改变了我的查询仍然是同样的问题
  • 你确定吗,你的表名是'skills_jobs'?
  • @Shaunak Shukla 是的,它是技能工作
  • 您必须设置表格,从中删除行,请参阅我的答案。

标签: php mysql join


【解决方案1】:

您必须设置表,从中删除行,然后尝试:

DELETE skills_jobs from skills_jobs INNER JOIN jobs j ON skills_jobs.jobid=j.id INNER JOIN users u ON u.id=j.userid WHERE u.id=$userid

参见https://dev.mysql.com/doc/refman/5.7/en/delete.html中的“多表删除”部分

【讨论】:

    【解决方案2】:

    应该是这样的

    skills_jobs skj inner join jobs j on skj.jobid=j.id
    

    你忘了语法

    所以正确的语法应该是这样的:-

    delete from skills_jobs skj inner join jobs j on skj.jobid=j.id inner join users u on u.id=j.userid where u.id=$userid
    

    希望这会有所帮助!

    【讨论】:

      【解决方案3】:
      delete from skills_jobs skj 
      inner join jobs j ON skj.jobid=j.id 
      inner join users u ON u.id=j.userid 
      where u.id=$userid
      

      试试上面的代码。 希望这会有所帮助。

      【讨论】:

        【解决方案4】:
        DELETE FROM skills_jobs skj INNER JOIN jobs j ON j.id=skj.jobid INNER JOIN 
        users u ON u.id=j.userid 
        WHERE u.id=$userid
        

        【讨论】:

        【解决方案5】:
         DELETE FROM skj USING `skills_jobs` AS skj
         INNER JOIN `jobs` AS j ON skj.`jobid` = j.`id`
         INNER JOIN `users` AS u ON u.`id` = j.`userid` 
         WHERE u.`id` = $userid
        

        如果为表声明别名,则在引用该表时必须使用别名。

        另一个结构化的答案:

        DELETE skj FROM `skills_jobs` AS skj
        INNER JOIN `jobs` AS j ON skj.`jobid`=j.`id` 
        INNER JOIN `users` AS u ON u.`id`=j.`userid`
        WHERE u.`id`=$userid
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2019-08-25
          • 1970-01-01
          • 1970-01-01
          • 2013-11-09
          • 1970-01-01
          • 2011-03-23
          相关资源
          最近更新 更多