【发布时间】:2011-06-08 18:03:06
【问题描述】:
假设我们有一个看起来像这样的表
connection_requirements
+-----------------------------------+
| item_id | connector_id | quantity |
+---------+--------------+----------+
| 1 | 4 | 1 |
| 1 | 5 | 1 |
| 1 | 2 | 2 |
+---------+--------------+----------+
此表列出了电子设备运行所需的连接器,以及每种类型的连接器所需的数量。 (想想主板上的连接需要某些类型的电源连接器)
现在我们也有了这张桌子……
connections_compatability
+-------------------------+
| connector_id | works_as |
+--------------+----------+
| 6 | 4 |
| 6 | 5 |
+--------------+----------+
其中第一列是连接器,也可以作为第二列的连接器ID。 (例如电源有连接器,例如“6+2 Pin”,可以用作“8 Pin”或“6 Pin”)
现在我们终于知道了这张表中有多少个可用的连接器
connector_quantities
+-------------------------+
| connector_id | quantity |
+--------------+----------+
| 1 | 1 |
| 2 | 3 |
| 3 | 2 |
| 4 | 1 |
| 5 | 0 |
| 6 | 4 |
| 7 | 0 |
| 8 | 5 |
+--------------+----------+
根据这些表格,您可以推断,我们确实有足够的连接器供 1 号项目正常运行。即使我们没有足够的连接器#5,我们也有4 个连接器#6,它们可以用作连接器#4 和#5。
connection_requirements 表已连接到 items 表,我们如何过滤需要的连接数超过可用连接数的项目?我们已经有了代码来过滤需要不可用连接器的项目。
这个问题有很多复杂的层次,所以我们试图简化这个问题。
非常感谢所有帮助!
【问题讨论】:
标签: mysql join combinations