2010-06-17 120 views
3

我有兩個表table1和table2,我需要編寫一個select查詢,它將列出兩個表中存在的列。 (MySQL的)比較兩個表並找到匹配列

我需要爲不同的表(2在同一時間)

這是可能的嗎?

我試過使用INFORMATION_SCHEMA.COLUMNS,但我無法弄清楚。

回答

12
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 
+0

神奇的Mr.Wrikken,像蛋糕一樣工作 – Sharpeye500 2010-06-17 22:43:06

2

萬一有人需要相反:
查找存在於一個表中的所有列,但在其他失蹤:

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' 
) 
相關問題