mysql - 如何连接具有多个条件的多个表
问题描述
我有六张桌子
在线交易
| date | id | supplier_id | product code |
online_transaction_enc
| date | id | item |
离线交易
| date | id |
offline_transaction_enc
| date | id | item |
产品
| type | product_code |
供应商
| supplier_id | country |
选择日期在“2018 年 6 月 1 日”和“2018 年 7 月 30 日”之间的计数(项目)和类型=“家庭”和国家/地区=“马来西亚”
这些大致是我想要实现的。我想在日期和 ID 上合并线上和线下的项目,以便我将所有项目组合起来,然后再满足其他要求。如何在 MySQL 中做到这一点?
解决方案
尝试这个:
select count(a.item) from
(select date, id, item from online_transaction_enc
union
select date, id, item from offline_transaction_enc)a
inner join
(
select date,id,supplier_id,productcode from online_transaction
union
select date,id,supplier_id,productcode from offline_transaction)b
on a.date=b.date and a.id=b.id
inner join supplier on b.supplier_id=supplier.supplier_id
inner join products on b.productcode=products.product_code
where a.date between '20180601' And '20180730' AND Type='household' AND country='Malaysia'
推荐阅读
- html - 如何在不更改 HTML 的情况下将单个 UL 拆分为两列布局?
- javascript - 如何使用 Sentry 报告 console.error?
- python - ValueError:期望','分隔符,同时尝试在python3中将字符串加载为json
- python - 推荐什么?tensorflow train_and_evaluate 或 estimator.train, estimator.evaluate
- android - Android:Java.io.IOException:请求 GCM 令牌时的 RST
- node.js - 通过前端发送表单时,req.body 始终为空
- reactjs - Visual Studio Code Chrome 调试器不会在 React 的生成器函数中设置断点
- sql-server - SQL Server - 删除有条件的重复行
- javascript - 是否可以在 Javascript 中从剪贴板 onclick 粘贴?
- r - 使用 Signal 包的 R 低通滤波器