簡體   English   中英

SQL Server:使用左聯接從兩個表中選擇一列作為單列

[英]SQL Server: use left join to select a column from two tables as a single column

我正在嘗試建立一個選擇查詢,該查詢本質上將使兩個表保持聯接,並將每個表中的一列顯示為單列。

表結構類似於:

表一:

id, email

表b:

id, tablea_id, email

我正在嘗試獲取電子郵件和電子郵件的單個列(理想情況下沒有重復或空值)。

理想的結果是:

one@one.com
two@two.com
three@three.com

並且返回的電子郵件地址可能來自a或b。

也許聯合會是最有效的,但是我無法根據第一個表的ID找出如何在第二個表上進行聯合。

在尋找解決方案時,也許我的措辭不好,但是我找不到任何示例。

謝謝你的幫助。

似乎您需要以下內容:

SELECT email
FROM TableA
UNION
SELECT B.email
FROM TableA A
JOIN TableB B
ON A.id = B.TableA_id

如果您只想從任一表中獲得唯一的電子郵件地址列表,則可以執行以下操作:

Select email
From TableA
Union
Select email
From TableB

如果要查找表B和表B中存在的表A的電子郵件地址的唯一列表,則可以執行以下操作:

Select TableA.email
From TableA
    Join TableB
        On TableB.TableA_id = TableA.id
Union
Select email
From TableB

如果根據您的評論,您只需要表A中的所有行,而僅表B中存在的表B中的行:

Select email
From Table A
Union 
Select TableB.email
From TableB
    Join TableA
        On TableA.id = TableB.TableA_id

這個怎么樣:

SELECT DISTINCT a.email+ ' ' + b.email FROM tableA a LEFT JOIN tableB b on a.Id = b.tablea_Id WHERE b.email IS NOT NULL

這可以幫助:

SELECT
    id, email
FROM
    a

UNION

(
    SELECT
        a.id AS id, b.email AS email
    FROM
        b
    INNER JOIN
        a
    ON
        a.id = b.tablea_id
) b

暫無
暫無

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

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