내 SQL 요청 중 하나에서 실제로 블로킹 문제가 있습니다. 내 문제는 다음과 같습니다 : 일부 사용자 및 그들의 이름, 주소, 전화 번호를 포함하는 첫 번째 테이블 (임시 테이블) 있습니다 ... 나는 일부에 대한 정보가 들어있는 두 번째 테이블 ("실제"하나) 명령. 명령은 사용자와 관련이 있지만 약간 복잡합니다. 자세한 내용은 여기 선명도, 내 테이블의 정의의 예를 들면 다음과 같습니다SQL Server 2008 - 다른 테이블의 값에 따라 업데이트 수행
USER
ID char(8)
LastName nvarchar(30)
FirstName nvarchar(30)
PostCode nvarchar(10)
PhoneNumber nvarchar(20)
HomeAdress nvarchar(20)
COMMAND
ID char(6)
CMD_FirstName nvarchar(20)
CMD_LastName nvarchar(20)
CMD_PostCode nvarchar(10)
ID_User char(8)
이 두 테이블이 논리적으로 관련되어 있지만, 실제로는 ... 명령 테이블에서 필드 "ID_User는"일반적으로 없습니다 없습니다. SQL 재검색의 목적은 ID_User 필드를 채워서 모든 명령과 해당 사용자 간의 연결을 만드는 것입니다. ID_User가 null이거나 비어있는 각 명령에 대해 성, 이름, 필드 및 게시물 코드를 일치시켜 사용자를 검색하려고합니다. 이 일치가 엄격하면 (USER 테이블에 doublon이 없다면 중요합니다), ID_User 필드를 채울 수 있습니다.
크고 복잡한 요청을 보내 주시겠습니까? 미리 감사드립니다.
PS : 두 개 이상의 user
일치 FIRSTNAME/LASTNAME/우편 번호 조합을 제외하려면 마이크로 소프트 SQL 서버 2008 R2
이렇게 생각합니다. 그렇습니다. 하지만이 요청은 일치의 단일성을 확인하지 않습니다 ... 동일한 성, 이름과 포스트 코드를 가진 테이블 USER에 두 명 이상의 사용자가있는 경우 요청은 COMMAND의 ID_User를 업데이트하고, 나는 원하지 않는 ... – DaveLeGO
중복을 처리하기 위해 업데이트 – RichardTheKiwi
나는이 솔루션을 많이 좋아한다. 그러나 JOIN의 SELECT가 ID를 가져 오지 않으므로 SET에서 u.ID를 사용할 수 없기 때문에 두 번째 줄에서 오류가 발생합니다. 이 ID를 SELECT에 넣으면, GROUP BY에 넣어야하는데, 나는 이것을 원하지 않습니다 ... – DaveLeGO