Học SQL, xin lỗi nếu điều này là thô sơ. Cố gắng tìm ra một giải pháp làm việc UPDATE
cho pseudoish-mã sau:CẬP NHẬT Cú pháp với ORDER BY, LIMIT và Nhiều Bảng
UPDATE tableA
SET tableA.col1 = '$var'
WHERE tableA.user_id = tableB.id
AND tableB.username = '$varName'
ORDER BY tableA.datetime DESC LIMIT 1
Ở trên là giống như SELECT
cú pháp, nhưng tôi về cơ bản cố gắng cập nhật một giá trị cột duy nhất trong hàng mới nhất của tableA, nơi một tên người dùng được tìm thấy trong tableB.username (được đại diện bởi $ varName) được liên kết với số ID của nó trong tableB.id, nó tồn tại dưới dạng id trong tableA.user_id.
Hy vọng điều đó có ý nghĩa. Tôi đoán một số loại JOIN
là cần thiết, nhưng truy vấn phụ có vẻ phiền hà cho UPDATE
. Tôi hiểu rằng ORDER BY
và LIMIT
không có giới hạn khi nhiều bảng tham gia vào CẬP NHẬT ... Nhưng tôi cần chức năng này. Có cách nào để giái quyết vấn đề này không?
Một chút nhầm lẫn, cảm ơn trước.
+1 để trả lời câu hỏi của riêng bạn –
** Lưu ý: ** Điều này không hoạt động đối với các bảng tạm thời - từ hướng dẫn: 'Bạn không thể tham chiếu đến bảng tạm thời nhiều lần trong cùng một truy vấn.' –