假设 Table A
和 Table B
有各种字段。在 Table A
和 Table B
之间获取公共字段的简便方法是什么?我想在这些表上进行内连接,但我不知道常见字段是什么。
请注意,这是在PL / SQL中。当我列出 A.
或 B.
时,我会在下拉菜单中获取每个表的字段名称列表。但我想得到共同的领域。
答案 0 :(得分:0)
这取决于“共同领域”是什么意思
如果要获取两个表中名称相同的所有列,则可以使用此查询:
SELECT t1.column_name
FROM user_tab_columns t1
JOIN user_tab_columns t2
ON t1.COLUMN_NAME = t2.COLUMN_NAME
/*
AND t1.DATA_TYPE = t2.DATA_TYPE
AND t1.DATA_LENGTH = t2.DATA_LENGTH
*/
WHERE t1.table_name = 'A'
AND t2.table_name = 'B'
;
演示:http://sqlfiddle.com/#!4/2b662/1
但是如果您查看上面演示中的表格,您会看到表格A
有一个名为X
的列,数据类型为VARCHAR2
,而表B
也有一个名为X
但列为INT
的列。
如果要获取具有相同名称,相同数据类型和相同长度的所有列,请取消注释上述查询中的相应条件。
答案 1 :(得分:0)
意思是这样的:
TableA has 2 columns: Id and Name.
TableB has 2 columns: Name and PhoneNumber
查询:
SELECT A.Id, A.Name, B.PhoneNumber
FROM TableA A, TableB B
WHERE A.Name = B.Name;
编辑:
如果您想知道列表中的列名是什么,我相信您可以使用DESC TableA
。然后你得到一个列名列表。您可以将这些用于与另一个列表进行比较,例如从TableB开始。