次のクエリを使用して、yellowpagesディレクトリの種類の2つのテーブル(リスト&カテゴリ)を一致させるために使用されるJunctionTableに挿入します。WHILE LOOPを使用して接合テーブルに挿入する
任意の指定されたリスティングは、1つ以上のカテゴリに属することができます。
次のクエリは、3つのレコードをジャンクションテーブルに1つの問題を挿入して挿入しています。私は3つのフィールド(ID、Junc_LID、Junc_CatID)私の2つの他のテーブルのID列を表すLIDは、リストIDとカテゴリーIDであるCatIDされている。
クエリを実行すると、CatIDフィールドに1,2,43,34のレコードが3つ追加され、それぞれ異なるcatIDで4回挿入されます。
ユーザが自分のウェブフォームから10のカテゴリを選択した場合。クエリは、ユーザーが選択する各カテゴリのJunctionTable 1に10行を挿入して10回ループする必要があります。カンマ区切りのすべてのカテゴリの文字列ではなく、挿入物ごとに1つのCatIDを入力します。
DECLARE @cnt INT = 0;
WHILE @cnt < 3
BEGIN
INSERT INTO BND_ListingJunction_testing (Junc_LID,Junc_CatID)
Values ('[PulledLID]','[CatID]')
SET @cnt = @cnt + 1;
END;
------------------------------------- -UPDATE
ここでは、自分のトークンに対して変更されたクエリです。それは動作しますが、ジャンクションテーブルにいくつか追加の挿入を追加して、どこから来ているのかわかりません。
DECLARE @CatIDStr VARCHAR(100) = '[CatID]',@CatID VARCHAR(100) = ''
WHILE LEN(@CatIDStr) > 0
BEGIN
IF CHARINDEX(',',@CatIDStr) = 0
BEGIN
SET @CatID = @CatIDStr
SET @CatIDStr = ''
END
ELSE
BEGIN
SELECT @CatID = SUBSTRING(@CatIDStr,0,CHARINDEX(',',@CatIDStr))
SELECT @CatIDStr=SUBSTRING(@CatIDStr,CHARINDEX(',',@CatIDStr)+1,LEN(@CatIDStr))
END
INSERT INTO BND_ListingJunction_testing (Junc_LID,Junc_CatID)
Values ('[ScopedLID]',@CatID)
END
行1-7回だけ実行同じ挿入からすべてです。
あなたの質問は十分に明らかではない試してみてください。 –
太字のテキストを追加して、自分の意図を明確にしました。 – UserSN
@AlexPサンプルデータを表示してください。 – NEER