比较两个表并找到匹配的列

Sha*_*500 4 mysql

我有两个表table1和table2,我需要编写一个select查询,它将列出两个表中存在的列.(MySQL的)

我需要做不同的表(一次2个)

这可能吗?

我尝试过使用INFORMATION_SCHEMA.COLUMNS但是无法做到正确.

Wri*_*ken 15

 SELECT a.COLUMN_NAME
 FROM INFORMATION_SCHEMA.COLUMNS a
 JOIN INFORMATION_SCHEMA.COLUMNS b
 ON a.COLUMN_NAME = b.COLUMN_NAME
 AND b.TABLE_NAME = 'table2'
 AND b.TABLE_SCHEMA = database() //or manually enter it
 WHERE a.TABLE_NAME = 'table1'
 AND a.TABLE_SCHEMA = database(); //or manually enter it
Run Code Online (Sandbox Code Playgroud)


Rem*_*emy 8

如果有人需要相反的情况:
查找一个表中存在但在另一个表中缺失的所有列:

 SELECT *
 FROM INFORMATION_SCHEMA.COLUMNS a 
 WHERE a.TABLE_NAME = 'craft_content'
 AND a.TABLE_SCHEMA = 'craftcms2'
 AND a.COLUMN_NAME NOT IN (
   SELECT b.COLUMN_NAME
   FROM INFORMATION_SCHEMA.COLUMNS b 
   WHERE b.TABLE_NAME = 'craft_content'
   AND b.TABLE_SCHEMA = 'craftcms'
 )
Run Code Online (Sandbox Code Playgroud)