php - 删除已连接的表

标签 php mysql join sql-delete

我这里有两个表结构:

employee 
(emp_id INT AUTO_INCREMENT PRIMARY KEY,
emp_name VARCHAR(100),
emp_ic VARCHAR(20),
emp_phone VARCHAR(20),
emp_address VARCHAR(200))

employee_medical
(id INT AUTO_INCREMENT,
emp_id INT,
medical_notes TEXT,
PRIMARY KEY (id),
FOREIGN KEY (emp_id) REFERENCES employee(emp_id))

我想从两个表中删除行,即emp_id,但是当我尝试以下操作时,它不起作用。

$query = "DELETE employee, employee_medical
FROM employee
LEFT JOIN employee ON employee.emp_id = employee_medical.emp_id
WHERE emp_id='$id'";

Error : Not unique table/alias: 'employee'

我该如何解决这个问题?

最佳答案

您的查询有误。它不应该是从员工中删除员工,而只是从员工中删除

您的 JOIN 也不正确,因为您似乎试图将相同的 2 个表连接在一起(您将 employeeemployee 连接)。

最后,在 WHERE 子句中,您应该指定应从哪个表检查 emp_id。在这种情况下,您也不需要在 $id 两边加上单引号。这是一个数字,而不是字符串。

$query = "DELETE FROM employee
LEFT JOIN employee_medical ON employee.emp_id = employee_medical.emp_id
WHERE employee.emp_id=$id";

请查看this question不过,我相信这符合你的利益。您可能需要的是DELETE CASCADE,而不是JOIN

关于php - 删除已连接的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32052964/

相关文章:

hibernate - Grails中 hibernate 标准构建器中的Join语句

mysql - 使用 MYSQL 关联表和 JOIN

php - Symfony 实体 - 在 ManyToMany 连接中订购连接实体

php - 上传前如何使用php获取安全文件名

php - Laravel 中使用 ajax 时出现错误 422 无法处理的实体

php - 将 MYSQLI 查询结果写入 php 中的文本文件

javascript - 根据单选按钮选择自动更新 .php 变量的值,无需提交或刷新

php - mysqli_fetch_assoc 崩溃但 mysqli_fetch_array(MYSQLI_NUM) 工作

php - MySQL 选择组依据

java - 在没有大量查询的情况下,在 where 子句中使用 ArrayList 中的值?