当任一列可能为空时,如何从同一表中基于两列获取记录计数

时间:2018-07-18 16:30:47

标签: mysql sql

我有两个表: 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。

0 个答案:

没有答案