다음을 수행하고 싶습니다.
열이있는 테이블이 있습니다.
id, manufacturerretailerid, categoryid, order
order
null 일 수 있습니다.
에서 manufacturerretailerid
와 categoryid
나는 다음을 수행 할 필요가 ...
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] 삭제
몇 마디 만하겠습니다