mysql - sql 找出2個(gè)數(shù)據(jù)庫(kù)的差異表名
問(wèn)題描述
同一個(gè)數(shù)據(jù)庫(kù),本地51張表和遠(yuǎn)程49張表,有差異數(shù)據(jù)表。如何通過(guò)一條SQL來(lái)快速找出這些表的名字。
SQL:
USE performance_schema;SELECT t1.OBJECT_SCHEMA,t1.OBJECT_NAME,t2.OBJECT_SCHEMA,t2.OBJECT_NAMEFROM `table_io_waits_summary_by_table` t1 RIGHT JOIN `table_io_waits_summary_by_table` t2 ON t1.OBJECT_NAME = t2.OBJECT_NAMEWHERE t1.OBJECT_SCHEMA=’db1_local’ AND t2.OBJECT_SCHEMA=’db2_remote’;
結(jié)果集只有49張,無(wú)法羅列出差異的表明。使用了 LEFT OUTER JOIN 還是一樣。
驗(yàn)證是存在差異的:
SELECT OBJECT_NAMEFROM table_io_waits_summary_by_table WHERE OBJECT_SCHEMA=’db1_local’ AND OBJECT_NAME NOT IN (SELECT OBJECT_NAME FROM table_io_waits_summary_by_table WHERE OBJECT_SCHEMA=’db2_remote’ )
問(wèn)題解答
回答1:試試這個(gè):
USE performance_schema;SELECT t1.*FROM `table_io_waits_summary_by_table` t1 LEFT JOIN `table_io_waits_summary_by_table` t2 ON t1.OBJECT_NAME = t2.OBJECT_NAME AND t2.OBJECT_SCHEMA=’db2_remote’WHERE t1.OBJECT_SCHEMA=’db1_local’ AND t2.OBJECT_NAME IS NULL;
其實(shí)你的第一個(gè)SQL只要將對(duì)t2的限制提到連接條件中就行了,將t2.OBJECT_SCHEMA=’db2_remote’寫(xiě)在where條件里面RIGHT JOIN就變成了INNER JOIN ~
相關(guān)文章:
1. html5 - angularjs中外部模版加載無(wú)法使用2. java - 安卓電視盒子取得了root權(quán)限但是不能安裝第三方應(yīng)用,請(qǐng)問(wèn)該怎么辦?3. 我的Apache卡在這里不動(dòng)了怎么辦?4. css3 - 請(qǐng)問(wèn)一下在移動(dòng)端CSS布局布局中通常需要用到哪些元素,屬性?5. 想寫(xiě)一個(gè)python分析統(tǒng)計(jì)apache 日志文件的腳本6. javascript - js 寫(xiě)一個(gè)正則 提取文本中的數(shù)據(jù)7. 老哥們求助啊8. javascript - [WDS] Disconnected! 一直重復(fù)出現(xiàn)。9. javascript - vue-router怎么不能實(shí)現(xiàn)跳轉(zhuǎn)呢10. python - 模擬滑動(dòng)驗(yàn)證碼,有源碼,求解
