我这里有两个表结构:
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 个表连接在一起(您将 employee
与 employee
连接)。
最后,在 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/