MySQLで複数のテーブルを異なるデータベースと異なるカラムでJOIN
ちょっとややこしいんだけど、以下のような条件で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で指定の順にデータをソートする方法(ORDER BY FIELD)
MySQLで指定した順にソートしてデータを取り出したい。通常だと主キーだったり何 ...
MySQLでJOINの高速化
JOINで無茶苦茶悩んだのでメモ。やりたかった事は、MySQLで テーブルAには ...
MySQLでdatetime型のカラムから秒は省いて検索する方法
MySQLでdatetime型のカラムに対して「2022-10-07 10:30 ...
MySQLでデータベース単位とテーブル単位のデータサイズ(容量)の調べ方
VPSの各種ファイルを整理している際に「MySQLも不要なデータを削除すればいい ...
MySQLが起動も再起動もできない際の対応方法
サイトで障害が発生した。FTPやSSH接続は出来るけどサイト自体は表示されない。 ...