![](/img/trans.png)
[英]Sql server: Join two tables and select multiple column values with subquery
[英]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.