SQL Server : 모든 값이 삽입 될 때까지 하나의 값이 동일하게 유지되는 경우 문 여러 개 삽입

안나

다음을 수행하고 싶습니다.

열이있는 테이블이 있습니다.

id, manufacturerretailerid, categoryid, order

order null 일 수 있습니다.

에서 manufacturerretaileridcategoryid나는 다음을 수행 할 필요가 ...

  • Manufacturerretailer 테이블에 manufacturerretailer가있는 경우 categoryid를 삽입합니다.

    12 34 5

따라서 manufacturerRetailerIds 목록을 가져와야합니다.

select * 
from ManufacturerRetailers mr 
join manufacturers m on m.id = mr.ManufacturerId
where m.id = 14

내가 돌려받는 각 ID에 대해 모든 categoryid를 삽입해야합니다.

나는 시작했다 :

insert into ManufacturerRetailerCategories (ManufacturerRetailerId, CategoryId)
   select mr.id 
   from ManufacturerRetailers mr 
   join manufacturers m on m.id = mr.ManufacturerId
   where m.id = 14 

그러나 각 Manufacturerretailerid에 삽입하는 방법을 잘 모르겠습니다. categoryid 필드에 1,2,3,4,5가 표시됩니다.

그래서 우리는 다음을 얻습니다 :

제조업체 etailerids-10,20,30,40,50

다음을 원합니다.

manufacturerretailerid     categoryid
10                         1
10                         2
10                         3
10                         4
10                         5
20                         1
20                         2
20                         3
20                         4
20                         5

등등...

실제 categoryid 목록의 길이는 약 30 개이므로 하나의 insert 문에서이 작업을 수행 할 수 있는지 알고 싶습니다.

도움을 주시면 감사하겠습니다.

감사,

편집하다:

나는 이것이 하나의 가치를 추가 할 것이라고 생각합니다.

insert into ManufacturerRetailerCategories (ManufacturerRetailerId, CategoryId)
values((select mr.id from ManufacturerRetailers mr 
join manufacturers m on m.id = mr.ManufacturerId
where m.id = 14) ,(1))

그러나 나는 많은 것을 추가하는 방법을 알고 싶습니다

카테고리 ID는 실제로 ID 목록입니다. 현재는 관계가 없으므로 테이블에서 가져올 수 없습니다.

고든 리노 프

나는 당신이 원하는 것을 할 수 있다고 생각합니다 cross join. 귀하의 질문은 카테고리 값이 실제로 어디에 있는지 명확하지 않습니다. 이것은 당신이 원하는 것일 수 있습니다.

insert into ManufacturerRetailerCategories (ManufacturerRetailerId, CategoryId)
    select mr.id, c.categoryId
    from ManufacturerRetailers mr join
         manufacturers m
         on m.id = mr.ManufacturerId cross join
         (select distinct categoryId from manufacturerRetailers) c
    where m.id = 14 ;

명시 적 테이블이있는 경우 Categories하위 쿼리 대신이 테이블을 사용해야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관