勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

MySQLで複数のテーブルを異なるデータベースと異なるカラムでJOIN

  MySQL

ちょっとややこしいんだけど、以下のような条件で3つのテーブルを結合したかった。

 

・db1.table1のidカラムとdb2.table2のidカラムを結合
・db1.table1のcodeカラムとdb1.table3のcodeカラムを結合

 

db1とdb2では異なるデータベースを結合するけど、db1内で結合する際はカラムが異なるというケース。

以下のSQL文でいけた。

 

SELECT *
FROM db1.table1 AS a 
LEFT JOIN db2.table2 AS b ON a.id = b.id 
LEFT JOIN db1.table3 AS c ON a.code = c.code;

数十件ぐらいのデータでテストしただけなので速度は分からないけど、まず間違いなく重たいクエリになるのでインデックスうまいこと張らないといけなさそう。

 - MySQL

  関連記事

MySQLで指定の順にデータをソートする方法(ORDER BY FIELD)

MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...

MySQLでJOINの高速化

JOINで無茶苦茶悩んだのでメモ。やりたかった事は、MySQLで テーブルAには ...

MySQLでdatetime型のカラムから秒は省いて検索する方法

MySQLでdatetime型のカラムに対して「2022-10-07 10:30 ...

MySQLでデータベース単位とテーブル単位のデータサイズ(容量)の調べ方

VPSの各種ファイルを整理している際に「MySQLも不要なデータを削除すればいい ...

MySQLが起動も再起動もできない際の対応方法

サイトで障害が発生した。FTPやSSH接続は出来るけどサイト自体は表示されない。 ...