MySQL 查询 : Merge Results

标签 mysql merge

我有两个表:

文档类型:

doc_id | doc_name | expiry_days
-------|----------|-------------
  1    | Doc_1    |    365
  2    | Doc_2    |    90
  3    | Doc_3    |    30

提供的文档:

evidence_id | doc_id  | client_id |  date_supplied
------------|---------|-----------|-----------------
       1    | 1       |    5432   |   13-05-2012
       2    | 1       |    3165   |   25-04-2011
       3    | 2       |    5432   |   23-10-2011

我想看到的输出是:

   doc_id | doc_name | expiry_days | client_id |  date_supplied
   -------|----------|-------------|-----------|----------------
     1    | Doc_1    |    365      |    5432   |  13-05-2012
     2    | Doc_2    |    90       |    5432   |  NULL    
     3    | Doc_3    |    30       |    5432   |  NULL
     1    | Doc_1    |    365      |    3165   |  25-04-2012
     2    | Doc_2    |    90       |    3165   |  NULL    
     3    | Doc_3    |    30       |    3165   |  NULL

基本上,对于每个客户,我想显示完整的文档列表 (14),但填充了提供的日期等额外字段,数据库中是否应该有该客户和文档的条目。因此,对于每条客户记录,我预计有 14 行,每个 doc_type 一行。其中一些行将包含特定于客户的数据。

这样,在我的网格中,我就可以根据 client_id 进行过滤并查看该人的所有文档及其状态的列表。

这可能吗?

最佳答案

SELECT   doc_types.*, client_id, date_supplied
FROM     doc_types
   CROSS JOIN (SELECT DISTINCT client_id FROM docs_supplied) AS clients
   LEFT  JOIN docs_supplied USING (client_id, doc_id)
ORDER BY client_id DESC, doc_id

查看 sqlfiddle .

如果您有一个具有唯一 client_id 列的表,则可以简单地使用它,而不是从 SELECT DISTINCT 子查询生成它:

SELECT   doc_types.*, client_id, date_supplied
FROM     doc_types
   CROSS JOIN client_accounts
   LEFT  JOIN docs_supplied USING (client_id, doc_id)
ORDER BY client_id DESC, doc_id

了解SQL joins .

关于MySQL 查询 : Merge Results,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10734714/

相关文章:

git - 将分支 merge 到 Git 中的多个分支

mysql - 在mysql workbench中实现标准差函数

java - 如何使用 Spring、Hibernate 将具有自动值的数据插入到 createdDate 和 updatedDate?

php - 如何在godaddy Cpanel中为php文件运行cron作业?

svn - 使用 TortoiseSVN 合并已删除分支的功能未按预期工作

git - 您如何在 merge 的更改之上重新设置当前分支的更改?

mysql - 在 MySQL 中导入 CSV。仅导入每一行

mysql - Where, either or not both 子句 SQL

json - 将嵌套字典合并到 d3 sunburst 的 Json 文件

python - 从 Stata 调用 Python