我有兩個表:段(id,name)和部分(id,name)。這兩個關係具有n:m關係,因此段可以有多個部分,一個部分可以屬於多個段。MySQL n:m從表1中找到只包含表2中元素的元素
當然,我們有一個鏈接表segments_parts(segments_id,parts_id)將這兩者連接在一起,就像習慣用n:m關係一樣。
現在,給出一個零件ID列表,我想檢查是否有一個段具有這些部分,但沒有更多!
因此,例如,如果段2具有部分1和3,並且段5具有段1,3和7,當我請求「給出段1和段3」時,我只希望返回段2,而不是兩個都。
Segments Parts
------------------------ ------------------------
| ID | Name | | ID | Name |
------------------------ ------------------------
| 1 | Segment 1 | | 1 | Part 1 |
| 2 | Segment 2 | | 2 | Part 2 |
| 3 | Segment 3 | | 3 | Part 3 |
| 4 | Segment 4 | | 4 | Part 4 |
| 5 | Segment 5 | | 5 | Part 5 |
------------------------ | 6 | Part 6 |
| 7 | Part 7 |
------------------------
segments_parts
------------------------
| segment_id | part_id |
------------------------
| 1 | 1 |
| 1 | 4 |
| 2 | 1 |
| 2 | 3 |
| 3 | 2 |
| 3 | 4 |
| 4 | 2 |
| 4 | 3 |
| 5 | 1 |
| 5 | 3 |
| 5 | 7 |
------------------------
給定輸入1,3我想段ID 2回(因爲它是具有這兩個部分ID的段,而不是其他。需要注意的是段5也有部分1和3,但也有一部分7,因此不應該返回!)
給定輸入1,3,7我想段ID 5返回。
給定輸入1,6我不想返回任何東西,因爲沒有包含這兩部分的段。
添加樣品表數據和預期結果。格式化好! – jarlh