Làm cách nào để cập nhật bảng cũng có trong truy vấn phụ? Tôi có phải làm điều đó trong 2 giai đoạn không? (tạo một bảng tạm thời - đặt dữ liệu được chọn vào nó và sau đó cập nhật bảng cuối cùng)Cách cập nhật từ chọn bằng Tham gia
Tôi đang cố gắng cập nhật bảng hóa đơn Bảng với nhãn của mạng cho mỗi CTN.
Kết quả cuối cùng sẽ là:
invoiceLine
ctn network 1234 network1 2345 network2 3456 network1
tôi có các bảng sau:
invoiceLine
ctn network 1234 null 2345 null 3456 null
terminal
ctn network 1234 1 2345 2 3456 1
mạng
id label 1 network1 2 network2
tôi có thể chạy một lựa chọn nhưng tôi không chắc chắn làm thế nào để cập nhật với một tham gia:
update invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
set invoiceLine.network =
(
select network.label
from invoiceLine
inner join terminal on terminal.ctn = invoiceLine.ctn
inner join network on network.id = terminal.network
)
where invoiceLine.ctn = terminal.ctn
nhưng MySQL t hrows Mã
Lỗi: 1093. Bạn không thể chỉ định bảng mục tiêu 'invoiceLine' để cập nhật trong mệnh đề FROM
trùng lặp có thể xảy ra của [Làm thế nào để sử dụng JOIN trong truy vấn UPDATE ?] (http://stackoverflow.com/questions/15209414/how-to-use-join-in-update-query) –