簡體   English   中英

合並具有相同數據結構的兩個表,然后聯接到另一個表

[英]Merge two tables with same data structure then join to another table

這兩個表具有相同的數據結構:

    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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM