【问题标题】:Merge two tables with same data structure then join to another table合并两个具有相同数据结构的表,然后加入另一个表
【发布时间】:2018-03-16 00:16:50
【问题描述】:

数据结构相同的两张表:

    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'

【问题讨论】:

    标签: mysql join union


    【解决方案1】:

    不确定这是否是您要查找的内容,但您是否尝试过UNION SELECT

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

    【讨论】:

    • 对不起,这不能回答问题。你把表格弄错了。查看我的原帖
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-24
    • 1970-01-01
    • 2015-06-28
    • 1970-01-01
    相关资源
    最近更新 更多