我有兩個表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