簡體   English   中英

如何連接兩個表中列名相同但行值不同的兩個 SELECT 查詢

[英]How to Join two SELECT queries having same column names but different row values in both tables

我從 SQL SERVER 的 SELECT 查詢 1 獲得了一張表,如下所示:

數字 姓名 日期
21 名稱1 2004 年 3 月 20 日
25 名稱2 2005 年 6 月 26 日
23 名稱3 2005 年 6 月 26 日
24 名稱4 22.04.2012

我從 SQL SERVER 的 SELECT 查詢 2 中得到了一張表,如下所示:

數字 姓名 日期
30 名稱10 20.03.2064
30 名稱10 26.06.2035
35 名稱30 2025 年 6 月 26 日
36 名稱40 22.04.2042

我想將這些 SELECT 查詢加入一個 SELECT 查詢,如下所示

數字 姓名 日期
21 名稱1 2004 年 3 月 20 日
25 名稱2 2005 年 6 月 26 日
23 名稱3 2005 年 6 月 26 日
24 名稱4 22.04.2012
30 名稱10 20.03.2064
30 名稱10 26.06.2035
35 名稱30 2025 年 6 月 26 日
36 名稱40 22.04.2042

我試過這樣

Select * from ( select Number,Name,Date from table1 ) t1 
inner join ( select Number, Name, Date from table2) t2
on t1.number = t2.number

但它沒有用,這不是我想加入的實際表。

基本上我想加入兩個獲得相同列名但它們之間沒有共同值的 SELECT 查詢。 我想使用連接表中的 SELECT 查詢。

謝謝

    SELECT Number, Name, Date FROM table1
    UNION ALL
    SELECT Number, Name, Date FROM table2

根據問題的 output 與 SQL JOIN無關,而是可以通過UNIONUNION ALL來實現

無論如何,您可以使用UNION將 select 兩個表合並為一個表。 如果表的數據類型和列數分別相同且相等,則UNION可以工作。

您的問題的解決方案是:

SELECT [NUMBER], [NAME], [Date] FROM table1
UNION ALL
SELECT [NUMBER], [NAME], [Date] FROM table2;

UNIONJOIN的一些基本區別是:

加入 聯合所有
JOIN 根據它們之間的匹配條件組合來自許多表的數據。 SQL 組合了兩個或多個 SELECT 語句的結果集。
它將數據組合到新列中。 它將數據組合成新的 ROWS
從每個表中選擇的列數可能不同。 從每個表中選擇的列數應該相同。
從每個表中選擇的對應列的數據類型可以不同。 從每個表中選擇的相應列的數據類型應該相同。

UNIONUNION ALL是 SQL 運算符,用於連接 2 個或更多結果集。 這允許我們編寫多個SELECT語句,檢索所需的結果,然后將它們組合成一個最終的統一集合。

UNIONUNION ALL的主要區別在於:

UNION:只保留唯一的記錄
UNION ALL:保留所有記錄,包括重復記錄

聯合示例:

SELECT column1 AS datacheck from table1 
  UNION 
SELECT column1 AS datacheck from table2

結果:

+-----------+
| datacheck |
+-----------+
|   data2   |
+-----------+

UNION ALL 示例:

SELECT column1 AS datacheck from table1 
  UNION ALL
SELECT column1 AS datacheck from table2

結果:

+-----------+
| datacheck |
+-----------+
|   data2   |
|   data2   |
+-----------+

暫無
暫無

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

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