久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

mysql - sql 找出2個數據庫的差異表名

瀏覽:125日期:2022-06-22 09:26:52

問題描述

同一個數據庫,本地51張表和遠程49張表,有差異數據表。如何通過一條SQL來快速找出這些表的名字。

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’;

結果集只有49張,無法羅列出差異的表明。使用了 LEFT OUTER JOIN 還是一樣。

驗證是存在差異的:

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’ )

問題解答

回答1:

試試這個:

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;

其實你的第一個SQL只要將對t2的限制提到連接條件中就行了,將t2.OBJECT_SCHEMA=’db2_remote’寫在where條件里面RIGHT JOIN就變成了INNER JOIN ~

相關文章:
主站蜘蛛池模板: 永定县| 遂川县| 长治市| 紫金县| 威远县| 类乌齐县| 洮南市| 潮州市| 天峨县| 柳州市| 西乌珠穆沁旗| 绥化市| 辽中县| 华池县| 桃园市| 开江县| 普宁市| 达拉特旗| 北流市| 兴化市| 砚山县| 衡山县| 葵青区| 泸定县| 平陆县| 德保县| 岗巴县| 桦南县| 民权县| 三台县| 白银市| 乐清市| 双峰县| 红河县| 深州市| 客服| 阿图什市| 镇沅| 南木林县| 儋州市| 西乌珠穆沁旗|