簡體   English   中英

如何從 SQL Server 中的另一個表中獲取列?

[英]How can I get a column from another table in SQL Server?

我有兩個表,客戶和文件。

客戶的表定義如下:

ID   | NAME    | ADDRESS | TELEPHONE 
112  | EXAMPLE | ABC#123 | 85548484
115  | WOAH!   | ABC#123 | 85548484

和文檔的表是這樣的:

ID|Number|ClientID|Total
1 | 363  |  112   | 25000
2 | 364  |  112   | 24000
3 | 365  |  115   | 21000

如何在不使用 INNER JOIN 的情況下獲得這樣的結果?:

ID|Number|ClientID|Total| NAME    | ADDRESS | TELEPHONE 
1 | 363  |  112   |25000| EXAMPLE | ABC#123 | 85548484
2 | 364  |  112   |24000| EXAMPLE | ABC#123 | 85548484
3 | 365  |  115   |21000| WOAH!   | ABC#123 | 85548484

我試過

Select Documents.*, 
       (Select *from Clients where DOcuments.ClientID = Clients.ID ) 
FROM Documents

但我得到了錯誤的結果..

謝謝!

您可以使用apply

select d.*, c.name, c.address, c.telephone
from documents d cross apply
     (select c.*
      from clients c
      where d.clientid = c.id
     ) c;

您還可以使用left join

select d.*, c.name, c.address, c.telephone
from documents d left join
     clients c
     on d.clientid = c.id;

或使用full joinright joinouter apply類似構造。 inner join的限制很奇怪。

編輯:

如果您想保留所有客戶,即使是那些沒有文件的客戶:

select d.*, c.name, c.address, c.telephone
from clients c left join
     documents d
     on d.clientid = c.id;

嘗試:

選擇 D. , C。 從文檔 d 離開加入客戶 c on c.clientId = d.clientId -- 添加您選擇的 where 子句和 order by 子句

暫無
暫無

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

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