我正在學習SQL,所以很容易!加入或連接
我有幾張桌子。它們之間的公共列是'user_id'列。表1有一個'user_name'列。我想從表1中的這一列中獲取所有用戶名,其中user_ID匹配並更新表2中名爲'domain_info'的列:('domain name \','user_name')。
「域名\」將文本字符串和 「USER_NAME」由表1
所有幫助是非常讚賞 乾杯
我正在學習SQL,所以很容易!加入或連接
我有幾張桌子。它們之間的公共列是'user_id'列。表1有一個'user_name'列。我想從表1中的這一列中獲取所有用戶名,其中user_ID匹配並更新表2中名爲'domain_info'的列:('domain name \','user_name')。
「域名\」將文本字符串和 「USER_NAME」由表1
所有幫助是非常讚賞 乾杯
你或許應該不update
此列,因爲那時你將有每次在user
表中更改user_name
以保持其更新。這是有關依賴性和冗餘的Database normalization的重要概念之一。相反,堅持使用它們的關係來從表中查詢所需的數據。
select u.user_name, domain_info = d.domain_info+'\'+u.user_name
from table_1 u
inner join table_2 d
on u.user_id = d.user_id
update d
set domain_info = d.domain_info+'\'+u.user_name
from table_1 u
inner join table_2 d
on u.user_id = d.user_id
如果其中任何一個空的,你可以在isnull()
他們包裹或coalesce()
像這樣:
update d
set domain_info = isnull(d.domain_info,'')+isnull('\'+u.user_name,'')
from table_1 u
inner join table_2 d
on u.user_id = d.user_id
感謝SqlZim ..
我得到了它是這樣工作的:
UPDATE 表2 SET table2.domain_info = USER_NAME FROM表1 WHERE table1.user_id = table2.user_id;
UPDATE table2中 SET table2.domain_info = (SELECT {FN CONCAT( '域名\',domain_info)}) WHERE USER_ID = USER_ID;
我幾乎可以肯定,這有一個更好的語法......我沒有寫太多的TSQL。但它的工作!
再次感謝
這很酷。有問題嗎? – user2366842
請參閱[如何發佈一個好問題](https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/)或至少閱讀[幫助頁面](https://stackoverflow.com/help/mcve),以便人們可以真正幫助你。 DDL和一些預期輸出的樣本數據對於所有問題都是非常有用的。乾杯。 – scsimon