mysql - 合并具有相同数据结构的两个表,然后连接到另一个表

标签 mysql join union

两个表具有相同的数据结构:

    issues:                        old_issues:
    |id|itemno|issuedate |         |id|itemno|issuedate |
    |1 |200   |2018-02-01|         |1 |200   |2017-12-21|
    |2 |300   |2018-02-03|         |2 |200   |2017-12-20|
    |3 |200   |2018-02-02|         |3 |400   |2016-05-09|
                                   |4 |500   |2016-07-10|

我想将这两个表合并到一个 new_issues 表中,然后我想将其连接到另一个表,如下所示:

items:
|itemnumber|location|ccode|
|200       |DEP     |ARACD|
|300       |DEP     |ARACD|
|400       |SYD     |ARACD|
|500       |DEP     |DVD  |

但我只想使用如下查询选择items:

SELECT * FROM items WHERE location = 'DEP' AND ccode = 'ARACD'

并选择满足此条件的new_issues:

SELECT * FROM new_issues WHERE issuedate < '2018-01-01'

这是我尝试过的,但它似乎永远卡在那里加载,因为问题表中有数百万行:

SELECT i.itemno, new_issues.issuedate
FROM (SELECT * FROM issues UNION SELECT * FROM old_issues) AS new_issues
RIGHT JOIN items i ON i.itemno = new_issues.itemno
WHERE i.ccode = 'ARACD' AND i.location = 'DEP' AND new_issues.issuedate < '2018-01-01'

最佳答案

不确定这是否是您正在寻找的内容,但您尝试过UNION SELECT吗?

SELECT * FROM newitems WHERE location = 'DEP' AND ccode = 'ARACD'
UNION SELECT * FROM olditems WHERE location = 'DEP' AND ccode = 'ARACD' GROUP BY itemno

关于mysql - 合并具有相同数据结构的两个表,然后连接到另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49311342/

相关文章:

python - 连接列中的单词列表

sql - 如何将此查询编写为完整联接而不是联合左/右联接?

mysql - 在sql中如何编写在where子句中提供两个值的子查询

android - SQLite 跨表跨列排序

mysql - 如何连接这两个mysql查询?

mysql - 如何在 MySql 中使用联合查询从每个表中获得额外的列?

普通列和全文列的MySQL索引

mysql - 是否应该仅仅为了缓冲区溢出而验证输入(对于 MySQL 选择)?

mysql - 如何将 Google 云 sql 与使用免费 pascal 开发的 Windows 桌面应用程序一起使用 [Lazarus]

mysql - SQL AVG() 和 ORDER BY 组合