2017-03-09 25 views

回答

6

這裏有一個方法:

select column_name 
from information_schema.columns c 
where table_name in ('A', 'B') 
group by column_name 
having count(*) = 2; 

如有必要,還應該包括table_schema識別表。

+0

你能解釋一下你所說的「包括TABLE_SCHEMA」是什麼意思? – vnguyen

+0

同一個數據庫中的多個表可以具有相同的名稱,只能通過它們所在的模式進行區分。 –

+0

您的查詢可以工作,但它只顯示我想要加入的兩個表共享的列名。說,我想加入ORDR&OPOR。我將編寫一個如下所示的查詢 - >從ordr加入opor的ordr.primarykey = opor.foreignkey中選擇ordr.doctotal,opor.docnum。如果我已經知道ORDR的主鍵是否是DocEntry,那麼如何找到匹配的OPOR的外鍵來鏈接這兩個表? – vnguyen

0

另一種方式來獲得公共字段兩個表:

SELECT C.name 
FROM SYS.OBJECTS O 
JOIN SYS.COLUMNS C 
ON  O.object_id = C.object_id 
WHERE O.name IN 
(
'TABLE-A', 'TABLE-B' 
) 
group by C.name 
having count(*) = 2; 
0

方式有兩種表獲得公共列:

SELECT A.COLUMN_NAME 
FROM INFORMATION_SCHEMA.COLUMNS A 
JOIN INFORMATION_SCHEMA.COLUMNS B ON A.COLUMN_NAME = B.COLUMN_NAME 
WHERE A.TABLE_NAME 'Table_1' 
AND B.TABLE_NAME = 'Table_2' 
相關問題