我有两个表table1和table2,我需要编写一个select查询,它将列出两个表中存在的列。 (MySQL的)比较两个表并找到匹配列
我需要为不同的表(2在同一时间)
这是可能的吗?
我试过使用INFORMATION_SCHEMA.COLUMNS
,但我无法弄清楚。
我有两个表table1和table2,我需要编写一个select查询,它将列出两个表中存在的列。 (MySQL的)比较两个表并找到匹配列
我需要为不同的表(2在同一时间)
这是可能的吗?
我试过使用INFORMATION_SCHEMA.COLUMNS
,但我无法弄清楚。
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
是的,这是可能的,只需使用MySQL's SHOW COLUMNS
语法来获取数组中每个表的列,然后使用PHP's array_intersect()
函数来查找两个列中的列。
谢谢,可以将其在T-SQL SELECT查询来完成? – Sharpeye500 2010-06-17 22:33:01
万一有人需要相反:
查找存在于一个表中的所有列,但在其他失踪:
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'
)
神奇的Mr.Wrikken,像蛋糕一样工作 – Sharpeye500 2010-06-17 22:43:06