[英]MySQL UPDATE with subquery with group by
我在MySQL上有以下表格:
**Elements**
+------+------------------+------------------+
+ Id + Name + referenced +
+------+------------------+------------------+
+ 1 + element1 + NULL +
+ 2 + element2 + NULL +
+ 3 + element3 + NULL +
+ 4 + element4 + NULL +
+ 5 + element5 + NULL +
+ 6 + element6 + NULL +
+------+------------------+------------------+
**References**
+------+------------------+------------------+
+ Id + Name + type +
+------+------------------+------------------+
+ 1 + element1 + 1 +
+ 2 + element1 + 2 +
+ 3 + element3 + 1 +
+ 4 + element3 + 2 +
+ 5 + element3 + 3 +
+ 6 + element4 + 1 +
+ 7 + element5 + 2 +
+ 8 + element5 + 3 +
+------+------------------+------------------+
“元素”表上的“被引用”列應為0(表示在“引用”表上沒有其名稱的引用)和1(至少為一個在“引用”表上對其名稱的引用)。
可以通過以下查詢選擇此結果:
SELECT Elements.Id, Elements.Name, (References.Id is not null) as referenced FROM
Elements
LEFT JOIN
References ON Elements.Name = References.Name
GROUP BY Elements.Name ORDER by Elements.Id;
+------+------------------+------------------+
+ Id + Name + referenced +
+------+------------------+------------------+
+ 1 + element1 + 1 +
+ 2 + element2 + 0 +
+ 3 + element3 + 1 +
+ 4 + element4 + 1 +
+ 5 + element5 + 1 +
+ 6 + element6 + 0 +
+------+------------------+------------------+
但是我找不到用這種結果來更新“元素”表的方法。
有任何想法嗎?
UPDATE Elements e
LEFT JOIN References r ON e.OneName = r.OtherName
SET e.referenced = r.OtherName IS NOT NULL;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.