I have a 데이터베이스를 통해 '계좌 번호' 와 '카드 번호'. 나는 이 모든 카드 번호를 일치시킵니다 업데이트 파일을 '작업' 계좌 번호 도왔으매 실로나는 만 계좌 번호.
내가 만든 보기입니다 데이터베이스 테이블 ID 카드를 테이블에 링크뿐 계정 / 반품해야 '' 과 관련 계좌 번호, 이제 그 레코드전자문서의 업데이트하려면 있는 ID 와 일치시킵니다 데릭쉐퍼드와 계좌 번호.
이것은 ',' 표 '계좌 번호' 필드가 있는 Sales_Import 업데이트되어야 합니다.
LeadID AccountNumber
147 5807811235
150 5807811326
185 7006100100007267039
그리고 이건 리타리베이스카운트 움베르, 여기서 '표' 로 업데이트하려면 데릭쉐퍼드와.
LeadID AccountNumber
147 7006100100007266957
150 7006100100007267039
아래 있지 않지만, 그동안 운빨이야 찾았다.
UPDATE [Sales_Lead].[dbo].[Sales_Import]
SET [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import]. LeadID =
RetrieveAccountNumber.LeadID)
그러나 이 카드의 숫자를 업데이트뿐 계좌번호, 계좌 번호 대신 'NULL' 가
I believe '한' a '에서 업데이트를 통해 참가하십시오' 도움이 된다.
UPDATE
Sales_Import
SET
Sales_Import.AccountNumber = RAN.AccountNumber
FROM
Sales_Import SI
INNER JOIN
RetrieveAccountNumber RAN
ON
SI.LeadID = RAN.LeadID;
UPDATE
Sales_Import SI,
RetrieveAccountNumber RAN
SET
SI.AccountNumber = RAN.AccountNumber
WHERE
SI.LeadID = RAN.LeadID;
Sql Server 2008년 + '독점' 보다는 '병합해야 사용하여 업데이트하십시오. 구문 "에서 보유하고 있다.
또한 표준 SQL 및 카타시안 이동형이든지 部门是这样的 뿐만 아니라 더 많은 오류가 발생하는 여러 참여됨 행뿐만 부활시켜 좁히어 기술입니까 원본 쪽에 (및 카타시안 가능한 사용할 수 있는 여러 개의 다른 값을 업데이트) 하는 것보다 최종 결과 no. 운터르미니스틱.
MERGE INTO Sales_Import
USING RetrieveAccountNumber
ON Sales_Import.LeadID = RetrieveAccountNumber.LeadID
WHEN MATCHED THEN
UPDATE
SET AccountNumber = RetrieveAccountNumber.AccountNumber;
죄송합니다. 사용할 수 없는 순수한 선호하는 스타일 중 내려올 수 있다. Sql Server 에서 구현 '병합' 그동안 함께 맛보게 각종 버그 수정. 에런 베르트랑 목록을 컴파일됨 있다 보고된 수준들과 여기서요.
일반 오토메이티드 향후 개발자.
< h1>, SQL Server< /h1>;;
UPDATE
t1
SET
t1.column = t2.column
FROM
Table1 t1
INNER JOIN Table2 t2
ON t1.id = t2.id;
< h1>, Oracle (및 SQL Server) < /h1>;;
UPDATE
t1
SET
t1.colmun = t2.column
FROM
Table1 t1,
Table2 t2
WHERE
t1.ID = t2.ID;
< h1> MySQL< /h1>;;;
UPDATE
Table1 t1,
Table2 t2
SET
t1.column = t2.column
WHERE
t1.ID = t2.ID;
Mssql, 만일 내가 기억하는 올바르게 사용하는 것, 그것은 완료되어도 다음과 같습니다.
UPDATE [Sales_Lead].[dbo].[Sales_Import] SET [AccountNumber] =
RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE [Sales_Lead].[dbo].[Sales_Import].LeadID = RetrieveAccountNumber.LeadID
내가 경식도 동일한 문제가 code> foo.new< /code> <;;; 설정되었습니다 code> null< /code> 기술입니까 <;;; 행에 대해 < code> foo< /code>;;; ,, /code> bar< code> < 중요한 역할을 하는 일치하는 없었다. 내가 이런 일을 한 oralce:
< pre>; 업데이트 푸 = (일부 바르지뉴 포지뉴 설정되었습니다 충스러웠으니 표시줄에는 여기서 푸스키 = 바르스키) 여기서 존재하는 (선택 1 충스러웠으니 표시줄에는 여기서 푸스키 = 바르스키) < /pre>;
UPDATE [AspNetUsers] SET
[AspNetUsers].[OrganizationId] = [UserProfile].[OrganizationId],
[AspNetUsers].[Name] = [UserProfile].[Name]
FROM [AspNetUsers], [UserProfile]
WHERE [AspNetUsers].[Id] = [UserProfile].[Id];
응답을 주셔서 감사합니다. 수천 해결책을 찾았다.
UPDATE Sales_Import
SET AccountNumber = (SELECT RetrieveAccountNumber.AccountNumber
FROM RetrieveAccountNumber
WHERE Sales_Import.leadid =RetrieveAccountNumber.LeadID)
WHERE Sales_Import.leadid = (SELECT RetrieveAccountNumber.LeadID
FROM RetrieveAccountNumber
WHERE Sales_Import.leadid = RetrieveAccountNumber.LeadID)
아래 쿼리하지 블록을 Table1 업데이트하려면 Table2 함께 따라 ID:
UPDATE Sales_Import, RetrieveAccountNumber
SET Sales_Import.AccountNumber = RetrieveAccountNumber.AccountNumber
where Sales_Import.LeadID = RetrieveAccountNumber.LeadID;
이것은 이 문제를 쉽게 해결할 수 .
postgresql 와 작동하잖아
UPDATE application
SET omts_received_date = (
SELECT
date_created
FROM
application_history
WHERE
application.id = application_history.application_id
AND application_history.application_status_id = 8
);
Sql Server, 누군가 제안됩니다 아래 SQL 에서 작동하지 않습니다. 이 구문은 나를 보면서 새삼 우리 옛 학교 클래스:
UPDATE table2
SET table2.col1 = table1.col1,
table2.col2 = table1.col2,
...
FROM table1, table2
WHERE table1.memberid = table2.memberid
'없음' 또는 '존재' 를 사용하여 다른 모든 쿼리합니다 하지 않는 것이 좋습니다. 때문에 전체 데이터세트를 적은 서브셋에 당연히 null 무산되었다 OP 비교하여 일치하는 있을 것으로 보인다. 이 문제를 해결해야 함께 '대신' 피해 '를 작성하여 이벤트수정적절한 참가하십시오 올바른 SQL 을 사용하여 없는'. 다른 문제가 있는 것은 '없음' 또는 '를 사용하여 실행할 수 있습니다' 이 경우.
내 기준으로 표 중 상위 투표할 수 있으며, 이는 기존의 다른 테이블을 통해 결합하는 방식으로 업데이트하더라도 SQL Server 에서. 제가 말했듯이요, 두 개의 테이블을 사용할 수 없습니다 '같은' 업데이트하십시오 기술서임을 SQL Server 에서 참가하십시오 않으면 먼저 해당.
MS Sql
UPDATE c4 SET Price=cp.Price*p.FactorRate FROM TableNamea_A c4
inner join TableNamea_B p on c4.Calcid=p.calcid
inner join TableNamea_A cp on c4.Calcid=cp.calcid
WHERE c4..Name='MyName';
오라클 11g
MERGE INTO TableNamea_A u
using
(
SELECT c4.TableName_A_ID,(cp.Price*p.FactorRate) as CalcTot
FROM TableNamea_A c4
inner join TableNamea_B p on c4.Calcid=p.calcid
inner join TableNamea_A cp on c4.Calcid=cp.calcid
WHERE p.Name='MyName'
) rt
on (u.TableNamea_A_ID=rt.TableNamea_B_ID)
WHEN MATCHED THEN
Update set Price=CalcTot ;
이것은 간단한 예를 들어, 누군가 이해했소 간소화하는지 지정값이 생각해봤죠
DECLARE @TB1 TABLE
(
No Int
,Name NVarchar(50)
)
DECLARE @TB2 TABLE
(
No Int
,Name NVarchar(50)
)
INSERT INTO @TB1 VALUES(1,'asdf');
INSERT INTO @TB1 VALUES(2,'awerq');
INSERT INTO @TB2 VALUES(1,';oiup');
INSERT INTO @TB2 VALUES(2,'lkjhj');
SELECT * FROM @TB1
UPDATE @TB1 SET Name =S.Name
FROM @TB1 T
INNER JOIN @TB2 S
ON S.No = T.No
SELECT * FROM @TB1
이렇게 하면 다른 테이블을 찾아볼 수 없는 값을 기준으로 테이블을 업데이트하려면 열 수 있습니다.
UPDATE table1 SET table1.column = 'some_new_val' WHERE table1.id IN (
SELECT *
FROM (
SELECT table1.id
FROM table1
LEFT JOIN table2 ON ( table2.column = table1.column )
WHERE table1.column = 'some_expected_val'
AND table12.column IS NULL
) AS Xalias
)
이렇게 하면 열의 값을 기준으로 표 업데이트하십시오 테이블 모두에서 볼 수 있다.
UPDATE table1 SET table1.column = 'some_new_val' WHERE table1.id IN (
SELECT *
FROM (
SELECT table1.id
FROM table1
JOIN table2 ON ( table2.column = table1.column )
WHERE table1.column = 'some_expected_val'
) AS Xalias
)