sql - 如何从存储在两个不同表中的数据中返回具有自定义结构的内容
问题描述
我有一个表 A(id、email、shipping_id、address、due_at)和一个表 B(id、email、timestamp、order_number、due_at)。我想返回类似的东西
| id | type | due_at |
| 1 | A | ... |
| 7 | A | ... |
| 5 | B | ... |
对于与某个电子邮件匹配的所有记录,按两个表中的 due_at ASC 排序。我正在使用 PostgreSQL 9.5 - 实现这一目标的最佳方法是什么?
解决方案
使用 UNION 和 ORDER BY
SELECT id, 'A' as type, due_at
FROM tableA
WHERE email = 'some@email'
UNION
SELECT id, 'B', due_at
FROM tableB
WHERE email = 'some@email'
ORDER BY due_at ASC
您还可以使用 UNION ALL 而不是 UNION 来允许两个表中的重复值。
推荐阅读
- javascript - 多行搜索
- javascript - Vue I18n 不适用于纯 JavaScript 文件
- javascript - 如何在 vue js 中使用 Plyr.io 触发播放、暂停和结束事件
- progressive-web-apps - PWA - Serviceworker (React) 如何工作?
- c++ - 为什么我不能写cout<
我知道
()
优先级高于<<
,并且<<
优先级高于==
,但我想知道为什么我不能写cout<<a==b;
却可以用cout<<(a==b);
C++- java - 有没有更好的方法来减少长时间运行的石英作业的执行时间?
- python-3.x - “如果”语句在我的代码中似乎表现异常
- c++ - 为什么我们不允许将纯引用参数传递给 std::thread 但允许传递原始指针?
- windows - 通过 Jenkins 从命令行启动 CANape 时出现“错误 7:未找到硬锁”
- python - 如何获取从 twilio 发出的调用的 JSON API 响应?