1

私はテーブルAとテーブルを持っていますB。表Aには製品データが含まれ、表Bには各製品の画像が含まれています。画像ごとに1行。

Aテーブルをループし、製品IDを取得し、結果セットを連結してテーブルの1つのフィールドに挿入するために、SQLステートメントを作成する必要がありますA

Table A

P-ID, Value1, Value2, Value3,    ImageLocation
35    Name    Price   description 

B

P-ID, ImageLocation
35    /upload/directory/imagename.jpg
35    /upload/directory/imagename2.jpg
35    /upload/directory/imagename3.jpg

最終結果:

TableA:
P-ID, Value1, Value2, Value3,       ImageLocation
35    Name    Price   description   /up/dir/image.jpg,/up/dir/image2.jpg,/up/dir/image3.jpg

一体どうやってこれをSQL化するのですか?

初心者からありがとう!!!!

4

2 に答える 2

0

複数の値を持つ列は嫌われています...そしてSql Serverでこれを行うための優雅な方法はありません-しかし、あなたは使うことができますFOR XML PATH:

SELECT PID, Value1, Value2, Value3, STUFF((
  SELECT ',' + ImageLocation
  FROM TableB b
  WHERE b.PID = a.PID
  FOR XML PATH('')
), 1, 1, '') AS ImageLocation
FROM TableA a

SQLフィドル

しかし、繰り返しますが、本当に Sql クエリでこれを行う必要がありますか?それとも、アプリケーション/プレゼンテーションで処理できるものですか?

于 2013-02-25T22:34:05.653 に答える
-1

次の行に沿って何かを試すことができます。

Select p.id, location || '/' ||......
From
(
Select * from tableA a, tableB b
Where a.id = b.id
)

どの DBMS を使用しているかわかりませんので、どの文字列 con を参照してください。適切です

于 2013-02-25T22:17:55.143 に答える