2011-12-07 31 views
0

我有三個表。用於具有多對多關係的複選框的SQL

董事:

Directors 
ID 
First Name 
Last Name 

電影:

Films 
Film ID 
Title 
Total 

董事對電影

Director-to-Films 
Director ID 
Film ID 

董事對電影存儲的ID是這樣的:

Director ID Film ID 
1  1 
1  2 
1  3 
1  4 

我用複選框列出的電影。

我如何做一個SQL更新使表看起來像:

Director ID Film ID 
1  1 
1  3 

(即電影中的 「2」 和 「4」 被刪除)OR

Director ID Film ID 
1  1 
1  2 
1  3 
1  4 
1  5 

(即電影「 5「被添加到導演」1「)?

+0

」我用複選框列出的電影。「 - 請解釋這是什麼意思?您是否指向鏈接到此數據庫的Web應用程序中的HTML複選框? – Curt

回答

1

除非我失去了一些東西,你要尋找的SQL僅僅是刪除和插入:

delete Directors_to_Films where Director_ID = 1 and Film_ID in (2,4); 

insert into Directors_to_Films (Director_ID, Film_ID) values (1,5); 

這是假設當你創建UI,您獲取適當的ID並將它們關聯到控件。


爲了澄清最後一句話:如果我理解正確的話,你就顯示薄膜,然後用複選框董事的名單他們的名字旁邊。用戶可以檢查一個或多個框。如果這是正確的,那麼大概你正在從數據庫中檢索導演列表。同時,您應該檢索關聯的ID並將其存儲在複選框的屬性中。當需要更新數據庫時,您可以使用該值的複選框控件來確定要更新的數據庫的哪一行。 「

+0

因此......使用任何語言(即PHP)將數據存儲到數組中,將其與複選框結果進行比較,然後決定這是否爲插入和刪除? – redconservatory