我有两个表: PLAN 和 PRODUCT
PLAN 表具有 DOCUMENT_ID 和 PRODUCT_ID 列。这两个都是可为空的列。即,一个计划可以包含文档或产品,或包含两者。
我必须根据给定的产品ID获取计划数。在获取 PLAN 的计数时,我还需要考虑 PRODUCT 表中的产品文档。我应该如何编写这样的查询?谢谢。
这是表格的示例视图:
DOCUMENT table
+------------+-
|Document_Id |
+------------+
| 1 |
| 2 |
| 3 |
+------------+
PRODUCT table
+------------+-------------+
| Product_Id | Document_Id |
+------------+-------------+
| 1 | 1 |
| 2 | 2 |
| 3 | 1 |
| 4 | 2 |
| 5 | 3 |
+------------+-------------+
PLAN table
+---------+------------+-------------+
| Plan_Id | Product_Id | Document_Id |
+---------+------------+-------------+
| 1 | 1 | 2 |
| 2 | NULL | 3 |
| 3 | 3 | NULL |
| 4 | NULL | 1 |
| 5 | 5 | 2 |
+---------+------------+-------------+
注意:在PLAN表中,Product_Id或Document_Id都不能为NULL。