2013-05-12 78 views
0

這是我正在嘗試的查詢。 請不要笑,因爲我目前無能爲力,哈哈。用戶名更改時更新查詢

UPDATE toondb SET tusername = (select username FROM user WHERE userid='1') WHERE (select username FROM user WHERE userid='1') != (select tusername from toondb where tuserid= '1') 

我鞭打它,希望它能工作。請讓我試着解釋一下。

我有一個名爲'toondb'的表。 toondb有不同的列。 在這個特殊情況下,我將重點放在此表中的「tusername」和「tuserid」列。
'tusername'列包含用戶的用戶名,'tuserid'列包含用戶的用戶名。當他們通過表單提交信息時,「tusername」和「tuserid」列會在論壇上自動填入他們的用戶名和用戶ID。

現在,另一個表'user'是信息的來源。 'user'表中有'userid'和'username'列。
我的用戶名是1,我的用戶名是

所以..我在自己的'toondb'表中有一行。用戶標識當前設置爲1(因爲用戶標識不會更改)。但是,用戶名被設置爲'Admin'。

好吧,由於我的新用戶名是'whatever',並且它不是'Admin'了,我需要設置一個自動運行的查詢來檢查'toondb',以使每個用戶的用戶名與他們的tusername匹配。

例如 檢查toondb表 看到用戶ID爲1 看到用戶名設置爲「管理員」 檢查用戶表 看到用戶ID爲1 看到用戶名現在被設置爲「任何」 更新的toondb他們tusername更改爲「什麼」,他們的用戶標識符是'1'。

謝謝,如果任何人都可以幫助..對不起,如果這真的很困惑..我試圖讓它聽起來不那麼混亂哈哈。 我知道基本的MySQL所以我有時..向愚蠢的問題;(

只是爲了澄清.. 「tusername」和「tuserid」是在toondb表 「用戶名」和「用戶ID」列是在用戶列表 在用戶表中的值將總是準確的。在用戶表中的列「用戶名」的值必須填充在toondb在「tusername」列的值附有最新信息的表。是的。:)

+0

爲什麼有用戶名在兩個表中時,你可以使用JOIN – igor 2013-05-12 23:23:22

+0

也,它使用關係數據庫的不良風格(請參閱https://en.wikipedia.org/wiki/Database_normalization) – igor 2013-05-12 23:24:29

回答

0

爲我評論,你應該避免兩個表中有用戶名,但如果有必要,你可以使用triggers更新用戶名時,他們改變了

+0

我該如何做到這一點?出於某種原因,我在兩個表中都有用戶名。我真的只需要兩個表中的UserID(我可以從用戶表中選擇UserID ='userid'的用戶名),但這將是一個額外的查詢,並且可能需要更長的時間才能以這種方式生成php頁面。所以,我這樣做:)我基本上只需要找出一個查詢,我可以用它來更新他們在'toondb'表上的用戶名,如果它在'用戶'表上更改,但UserID是相同的。謝謝 – llw 2013-05-15 10:14:10