MySQL跨庫多表聯查(不同庫之間進行表關聯)

2021-10-21 18:26:40 字數 985 閱讀 8935

mysql支援多個庫中不同表的關聯查詢,你可以隨便鏈結乙個資料庫

然後,sql語句為:

select * from db1.table1 left join db2.table2 on db1.table1.id = db2.table2.id
只要用資料庫名加上"."就能呼叫相應資料庫的資料表了.

資料庫名.表名

自己遇到的乙個跨庫聚合求差集的場景

select count(1) from analytics_graph_data.horgshareholdv002 where hcode not like '-%' and char_length(`name`) > 3

and hcode not in(select hcode from master_dev.tcr0002_2_list_h where hcode is not null)

注意:多表聯查時可能遇到的問題,關聯的兩個欄位的字段排序規則不同會發生以下報錯

illegal mix of collations (utf8mb4_0900_ai_ci,implicit) and (utf8mb4_general_ci,implicit) for operation '='

這種情況只需要將字段的排序規則修改一致即可:

修改表字段排序規則

alter table `表名` modify column `欄位名(列名)` varchar(64) collate `排序規則`;

alter table master_dev.tcr0002_2_list_h modify column itcode2 varchar(64) collate utf8mb4_0900_ai_ci;
若場景是需要跨節點或者異構場景:

如:兩個mysql服務,或者mysql與es

則建議在程式中去分次處理。

mysql中的跨庫關聯查詢不同機器上的庫

業務場景 關聯不同資料庫中的表的查詢 比如說,要關聯的表是 機器a上的資料庫a中的表a 機器b上的資料庫b中的表b。這種情況下,想執行 select a.id,b.id from a left join b on 那是不可能的,但業務需求不可變,資料庫設計不可變,這就蛋疼了。解決方案 在機器a上的資...

資料庫多表關聯查詢

本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。外連線可分為 左連線 右連線 完全外連線。1 左連線 left join...

資料庫的多表聯查 比較L

三表聯查 首先建立三個資料表 1.user id cid pid 1 1 1 2 2 2 2.user1 cid class 1 數學 2 語文 3 英語 3.user2 pid name 1 孫 2 趙 3 錢 以上是三個表裡的內容 自己隨意填寫 即通過表1裡邊的cid與pid來作為表2和表3的i...