爲了得到表A中的所有記錄基於在B鍵,英文的,要在表A中有一個加入記錄記載,表B鍵 (假設tableA_B有兩個外鍵的cols,( TabAFK和TabBFK)
Select * from TableA A
Where pK In (Select Distinct TabAFK From tableA_B
Where TabBFK = @TableBKeyValue)
其他方向同樣的事情
Select * from TableB B
Where pK In (Select Distinct TabBFK From tableA_B
Where TabAFK = @TableAKeyValue)
要插入一個新的記錄,做一個正常的INSERT INTO表A和表B需要插入......到第j OIN表(tableA_B)只是從兩個主表
Insert TableA (pk, [other columns]) Values(@pkValue, [other data)
Insert TableB (pk, [other columns]) Values(@pkValue, [other data)
兩個PKS - 然後插入到表中加入對存在每個協會...
Insert tableA_B (TabAFK, TabBFK) Values(@PkFromA, @PkFromB)
好了,所以它的有沒有加入可以做到這一點? 在第二個示例中(使用連接),是否有必要編寫「SELECT a。*」 – Soeren 2009-01-06 14:12:20
select where()通常比選擇where exists要慢() select * from a where exists(select * from b其中a.Id = b.aId和b.Id = 1234) – 2009-01-06 14:23:08