[英]mysql update with select count() from inner join
我有以下選擇語句,用於計算值在聯接表中出現的次數:
SELECT table1.idx, count(table1.idx) FROM
(table2 INNER JOIN table1 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx;
現在,我想用這些結果更新第三個表,將計數設置為table3.idx = table1.idx。 我試過了
UPDATE table3 SET count_col=joined_table.c FROM
(SELECT table1.idx, count(table1.idx) FROM
(table2 INNER JOIN table1 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx
) joined_table WHERE table3.idx = table1.idx;
如我如何從SQL Server中的SELECT更新中所建議的? ,也嘗試過
UPDATE table3 SET count_col=(
SELECT COUNT(table1.idx)
FROM (table1 INNER JOIN table2 ON table1.id=table2.id AND table2.value = 'target')
GROUP BY table1.idx
WHERE table3.idx = table1.idx);
按照MySQL的建議-基於SELECT Query的UPDATE查詢 ,但是它們都不起作用。 正確的語法是什么?
UPDATE table3
JOIN
(
SELECT table1.idx, count(table1.idx) as cnt
FROM table2
INNER JOIN table1 ON table1.id = table2.id
AND table2.value = 'target'
GROUP BY table1.idx
) joined_table ON table3.idx = joined_table.idx
SET count_col = joined_table.cnt
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.