とにかく、スクリプトは異なる連絡先に対して複数の行を返しませんか?
CREATE TABLE tblAddress (
AddressID int IDENTITY
, [Address] nvarchar(35)
);
CREATE TABLE tblContact (
ContactID int IDENTITY
, Contact nvarchar(35)
, AddressNum int
, labelsNum int
);
INSERT INTO tblAddress VALUES ('foo1');
INSERT INTO tblAddress VALUES ('foo2');
INSERT INTO tblContact VALUES ('bar1', 1, 1);
INSERT INTO tblContact VALUES ('bar2', 2, 2);
INSERT INTO tblContact VALUES ('bar3', 2, 2);
SELECT * FROM tblAddress a JOIN tblContact c ON a.AddressID = c.AddressNum
これにより、最後に3行が生成されます。labelsNum 列は冗長に思えます。アドレス foo2 に 3 番目の連絡先を追加する場合、一貫性を保つために、foo2 を参照するすべてのレコードのすべての labelsNum 列を更新する必要があります。
ラベルの量は、さまざまな連絡先の量によって既に決定されています。
または、何か不足していますか?