0
我有兩個表,第一個帶有一個指南名稱,章節和主題列表,隨着時間的推移,當新的指南添加或不具有相同的名稱,讓我們調用「導遊」,有點這樣的:Mysql更新其中計數不同返回多個行
|---Name---|---Chapter---|---Topic---|
|The Hearth| 1 |Educational|
|The Hearth| 2 |Educational|
|The Hearth| 3 |Educational|
|The Brain | 1 |Maths |
,另一臺在那裏我一個ID分配給每個教程,讓所謂的「簡歷」,像這樣
|---id---|---Name---|---Topic---|
| 1 |The Hearth|Educational|
| 2 |The Brain |Maths |
現在,當相同的導名稱被添加到「指南」,它有一個不同的話題,如:
|---Name---|---Chapter---|---Topic---|
|The Hearth| 4 |Tales |
我需要更新的「簡歷」表:
|---id---|---Name---|---Topic---|
| 1 |The Hearth|MIXED |
| 2 |The Brain |Maths |
我一直在嘗試不同的方式,這是我到目前爲止有:
UPDATE resume J INNER JOIN guides P ON J.name = P.name SET J.topic = "Mixed"
WHERE J.topic != P.topic AND (SELECT COUNT(DISTINCT a.topic)
FROM guides a
JOIN guides b
ON a.name = b.name
AND a.topic != b.topic
GROUP BY a.name
HAVING COUNT(DISTINCT a.topic) > 1)
一切正常,而只有一條記錄,但是如果添加了兩個不同主題的嚮導,子查詢會返回多個行,並且不會進行更新。我知道我可以用php循環來解決這個問題,但是我確定在查詢本身必須有一種方法來處理這個問題,我會很感激這方面的任何信息。
在此先感謝
這完美的工作!我不知道這是可能的,我的大腦仍在努力理解它。感謝chianh! – Aramil 2014-10-02 05:34:07