Sql 如何使用信息模式查找两个表之间的公共字段?
例如,如果我需要加入TableA和TableB,我如何使用INFORMATION_SCHEMA数据库来查找它们之间的公共字段 这里有一种方法:Sql 如何使用信息模式查找两个表之间的公共字段?,sql,sql-server,Sql,Sql Server,例如,如果我需要加入TableA和TableB,我如何使用INFORMATION_SCHEMA数据库来查找它们之间的公共字段 这里有一种方法: select column_name from information_schema.columns c where table_name in ('A', 'B') group by column_name having count(*) = 2; 如有必要,您还应包括表格\u架构,以识别表格。以下是一种方法: select column_name
select column_name
from information_schema.columns c
where table_name in ('A', 'B')
group by column_name
having count(*) = 2;
如有必要,您还应包括表格\u架构
,以识别表格。以下是一种方法:
select column_name
from information_schema.columns c
where table_name in ('A', 'B')
group by column_name
having count(*) = 2;
如有必要,您还应包括
表\u架构
,以识别表。另一种获取两个表中公共字段的方法:
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;
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'
在两个表中获取公共字段的另一种方法:
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;
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'
在两个表中获取公共列的方法:
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;
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'
在两个表中获取公共列的方法:
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;
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'
您能解释一下“包含表\架构”是什么意思吗?同一数据库中的多个表可以具有相同的名称,仅通过它们所在的架构进行区分。您的查询可以工作,但它只显示我要联接的两个表共享的列名。喂,我想加入ORDR&OPOR。我将编写一个如下所示的查询->选择ordr.doctotal,opor.docnum from ordr join opor on ordr.primarykey=opor.foreignkey。如果我已经知道ORDR的主键是DocEntry,我如何找到匹配的OPOR外键来链接这两个表?您能解释一下“包含表_模式”是什么意思吗?同一数据库中的多个表可以有相同的名称,仅通过它们所在的架构进行区分。您的查询可以工作,但它只显示我要联接的两个表共享的列名。喂,我想加入ORDR&OPOR。我将编写一个如下所示的查询->选择ordr.doctotal,opor.docnum from ordr join opor on ordr.primarykey=opor.foreignkey。如果我已经知道ORDR的主键是DocEntry,那么如何找到匹配的OPOR外键来链接这两个表?