В настоящее время у меня есть три таблицы, как показано ниже:
Таблица 1
book_id margin
-------------------
b1 10
b2 20
b3 30
Таблица 2
t2_id book_id author_id
-----------------------------
1 b1 100
2 b2 200
3 b3 300
Таблица 3
author_id revenue
----------------------
100 0
200 0
300 0
Я пытаюсь обновить доход в таблице 3 с 50% наценки из таблицы 1 для соответствующего автора (в таблице 3) книги. Результат должен обновить таблицу 3 до:
author_id revenue
----------------------
100 10
200 20
300 30
Я могу обновить значения из другой таблицы, если они напрямую связаны между собой общим ключом, мне трудно ссылаться на другую таблицу в середине, чтобы получить ответ: (
Я пытался:
UPDATE table3 t3 SET revenue =
(SELECT t1.margin FROM table1 t1 WHERE
(SELECT t1.book_id FROM table1 t1 JOIN table2 t2 ON t1.book_id = t2.book_id) =
(SELECT author_id FROM table3 t3 JOIN table2 t2 ON t3.authoer_id = t2.author_id));
Спасибо