programing

하나의 서버에 있는 두 개의 서로 다른 데이터베이스에 있는 테이블 간에 INER JOIN을 사용하여 쿼리 업데이트

goodsources 2023. 7. 15. 10:03
반응형

하나의 서버에 있는 두 개의 서로 다른 데이터베이스에 있는 테이블 간에 INER JOIN을 사용하여 쿼리 업데이트

SQL 구문 도움말이 필요합니다 :-)

두 데이터베이스가 동일한 서버에 있습니다.

db1 = DHE
db2 = DHE_Import

UPDATE DHE.dbo.tblAccounts 
INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink 
    ON DHE.dbo.tblAccounts.AccountCode = DHE_Import.tblSalesRepsAccountsLink.AccountCode 
SET DHE.dbo.tblAccounts.ControllingSalesRep = DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode

유사한 구문의 링크된 테이블로 액세스에서 쿼리를 수행할 수 있지만 SQL은 이를 좋아하지 않습니다.

저는 그것이 간단한 문제라고 확신합니다 :-D.

감사합니다!

그냥 스타일이라고 할 수 있지만, 저는 가독성을 향상시키기 위해 별칭을 선호합니다.

UPDATE A    
  SET ControllingSalesRep = RA.SalesRepCode   
from DHE.dbo.tblAccounts A
  INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink RA
    ON A.AccountCode = RA.AccountCode

MySQL의 경우

UPDATE DHE.dbo.tblAccounts A 
  INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink RA 
      ON A.AccountCode = RA.AccountCode 
SET A.ControllingSalesRep = RA.SalesRepCode

MySQL 구문은 다음과 같습니다.

UPDATE table1 
INNER JOIN table2 ON table1.field1 = table2.field2
SET table1.field3 = table2.field4 
WHERE ...... ;

http://geekswithblogs.net/faizanahmad/archive/2009/01/05/join-in-sql-update--statement.aspx

늦어서 죄송합니다만, 이곳에 도착한 사람들이 비슷한 문제에 대한 해결책을 찾는 것이 도움이 될 것 같습니다.set 절은 update 절 바로 뒤에 와야 합니다.따라서 쿼리를 약간 변경하여 다시 정렬하면 효과가 있습니다.

UPDATE DHE.dbo.tblAccounts 
SET DHE.dbo.tblAccounts.ControllingSalesRep
    = DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode
from DHE.dbo.tblAccounts 
INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink 
    ON DHE.dbo.tblAccounts.AccountCode
        = DHE_Import.tblSalesRepsAccountsLink.AccountCode 

다음과 같이 표시해야 합니다.

UPDATE DHE.dbo.tblAccounts
   SET DHE.dbo.tblAccounts.ControllingSalesRep = 
       DHE_Import.dbo.tblSalesRepsAccountsLink.SalesRepCode
  from DHE.dbo.tblAccounts 
     INNER JOIN DHE_Import.dbo.tblSalesRepsAccountsLink 
        ON DHE.dbo.tblAccounts.AccountCode =
           DHE_Import.tblSalesRepsAccountsLink.AccountCode 

FROM 절에서 업데이트 테이블이 반복됩니다.

UPDATE table1 a
 inner join  table2 b on (a.kol1=a.b.kol1...)
SET a.kol1=b.kol1
WHERE 
a.kol1='' ...

구문이 작동할 때까지 나를 위해 - MySQL.

유용할 수도 있는

Update
    A INNER JOIN B ON A.COL1=B.COL3
SET
    A.COL2='CHANGED', A.COL4=B.COL4,......
WHERE ....;

SQL에서 Inner join 쿼리를 사용하여 업데이트하는 것은 매우 간단합니다.사용하지 않고도 할 수 있습니다. FROM다음은 예입니다.

    UPDATE customer_table c 

      INNER JOIN  
          employee_table e
          ON (c.city_id = e.city_id)  

    SET c.active = "Yes"

    WHERE c.city = "New york";

여기에 설명되어 있습니다. http://erabhinavrana.blogspot.in/2014/01/how-to-execute-update-query-by-applying.html

또한 일반적으로 사용되는 다른 유용한 코드 스니펫도 있습니다.

update <dbname of 1st table>.<table name of 1st table> A INNER JOIN <dbname of 2nd table>.<table name of 2nd table> RA ON A.<field name of table 1>=RA.<field name of table 2> SET A.<field name of table 1 to be updated>=RA.<field name of table 2 to set value in table 1>

데이터 바꾸기<>적절한 가치를 제공합니다.

바로 그거야. 출처:

http://www.dynamic-coders.com/how-to-update-two-different-tables-in-different-databases-on-same-server

//For Access Database:
UPDATE ((tblEmployee
LEFT JOIN tblCity ON (tblEmployee.CityCode = tblCity.CityCode))
LEFT JOIN tblCountry ON (tblEmployee.CountryCode = tblCountryCode))
SET tblEmployee.CityName = tblCity.CityName, 
tblEmployee.CountryName = tblCountry.CountryName
WHERE (tblEmployee.CityName = '' OR tblEmployee.CountryName = '')
Update one table using Inner Join

  UPDATE Table1 SET name=ml.name
FROM table1 t inner JOIN
Table2 ml ON t.ID= ml.ID  

저한테는 완벽하게 먹혔죠.

UPDATE TABLE_A a INNER JOIN TABLE_B b ON a.col1 = b.col2 SET a.col_which_you_want_update = b.col_from_which_you_update;

언급URL : https://stackoverflow.com/questions/9894353/update-query-with-inner-join-between-tables-in-2-different-databases-on-1-server

반응형