2

Products テーブルの各レコードの基準に基づいて、テーブルProductsからテーブルProductImagesに複数の行を挿入する必要があり ます。次のように 3 回挿入されます。ProductImages tableproduct table

Sno | Productid 
 1  |    ABC
 2  |    XYZ
 3  |    PQR

ProductImages テーブルを

Sno | ProductId | ImageId 
 1  |    ABC    | ABC_Small
 2  |    ABC    | ABC_Big
 3  |    ABC    | ABC_Biggest
 4  |    XYZ    | XYZ_Small
 5  |    XYZ    | XYZ_Big
 6  |    XYZ    | XYZ_Biggest

Productid との関係の親テーブルから上記のように複数のレコードを取得することはできますか? 私を助けてください。ありがとう

4

2 に答える 2

4
declare @Product table(Sno int, Productid char(3))
declare @ProductImages Table(Sno int identity(1,1), ProductId char(3), ImageId varchar(20))

insert @Product
values(1, 'ABC'),(2, 'XYZ'),(3, 'PQR')

insert @ProductImages (ProductId, ImageId)
select p.ProductId,p.ProductId+ '_' +a.plus from @Product p
cross apply 
(values ('Small'), ('Big'), ('Biggest')) a(plus)

select * from @ProductImages

SQL 2000の編集

insert @Product values(1, 'ABC')
insert @Product values(2, 'XYZ')
insert @Product values(3, 'PQR')


insert @ProductImages (ProductId, ImageId)
select p.ProductId,p.ProductId+ '_' +a.plus from @Product p
join 
(select 'Small' plus
union all select 'Big'
union all select 'Biggest') a(plus)
on 1 = 1

結果:

Sno ProductId ImageId
1   ABC       ABC_Small
2   ABC       ABC_Big
3   ABC       ABC_Biggest
4   XYZ       XYZ_Small
5   XYZ       XYZ_Big
6   XYZ       XYZ_Biggest
7   PQR       PQR_Small
8   PQR       PQR_Big
9   PQR       PQR_Biggest
于 2013-06-26T08:28:31.980 に答える
3

これを試して

insert ProductImages (ProductId, ImageId)
select
    p.Productid,
    p.Productid+'_'+size
from Products p
cross join (
    Select size
    From (
       Values 
          ('Small'), 
          ('Big'),
          ('Biggest')
    ) s(size)
) sizes
于 2013-06-26T08:30:56.303 に答える