簡體   English   中英

MySQL UPDATE與分組依據的子查詢

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM