Tôi có hai bảng, một cho thời hạn công việc, một cho mô tả một công việc. Mỗi công việc có thể có một trạng thái và một số trạng thái có nghĩa là thời hạn của công việc phải được xóa khỏi bảng khác.Xóa các hàng bằng MySQL LEFT JOIN
tôi có thể dễ dàng SELECT
các công việc/thời hạn đáp ứng tiêu chí của tôi với một LEFT JOIN
:
SELECT * FROM `deadline`
LEFT JOIN `job` ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
(status
thuộc về job
bảng không deadline
)
Nhưng khi tôi muốn xóa các hàng từ deadline
, MySQL sẽ phát ra lỗi. truy vấn của tôi là:
DELETE FROM `deadline`
LEFT JOIN `job`
ON deadline.job_id = job.job_id
WHERE `status` = 'szamlazva'
OR `status` = 'szamlazhato'
OR `status` = 'fizetve'
OR `status` = 'szallitva'
OR `status` = 'storno'
lỗi MySQL nói gì:
Bạn có một lỗi trong cú pháp SQL của bạn; kiểm tra hướng dẫn tương ứng với phiên bản máy chủ MySQL của bạn cho đúng cú pháp để sử dụng gần 'LEFT JOIN
job
ON deadline.job_id = job.job_id ĐÂUstatus
= 'szaml' tại dòng 1
Làm thế nào tôi có thể biến SELECT
của tôi vào một truy vấn DELETE
đang hoạt động?
Cũng sử dụng "trạng thái trong ('szamlazva', 'szamlazhato', 'fizetve', .........)" – Salil
Với "AS" tôi phải sử dụng bí danh trong mệnh đề của mình để làm cho nó hoạt động cho mục đích (xóa trẻ em mồ côi): DELETE t1 TỪ bảng1 AS t1 TÌM THAM GIA t2 AS t2 TRÊN t1.uid = t2.result WHERE t2.result IS NULL – Urs
Tham chiếu: http://dev.mysql.com/doc/ refman/5.7/en/delete.html – Slawa