两个表具有相同的数据结构:
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/