1

ビューとテーブルを結合したいのですが、あるテーブルLはローカルで、ビューFFEDERATED別のサーバーにあるビューです。

SELECT * FROM L LEFT JOIN F ON L.id = F.id;

現在、テーブルとビューの間に実際には多くの一致があるにもかかわらず、JOIN の結果はヒットしません。ID フィールドはbigint.

イライラして、私はTEMPORARYテーブルを作成し、そこにTすべてをダンプしFて、ローカル コピーを作成しましたFTの代わりに を使用するとF、JOIN は期待どおりに機能します。しかし、作成のプロセスはTメモリと時間を消費します。

この奇妙な MySQL の動作の考えられる理由は何ですか?


テーブル定義:

CREATE TABLE `L` (
  `id` bigint(20) NOT NULL,
  `id2` bigint(20) NOT NULL,
  PRIMARY KEY (`id`,`id2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

および (このテーブルは、実際にはリモート サーバー上のビューです):

CREATE TABLE `F` (
  `id` bigint(20) NOT NULL AUTO_INCREMENT,
  `field1` bigint(20) NOT NULL,
   ...
  `field5` tinyint(1) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=FEDERATED DEFAULT CHARSET=latin1 CONNECTION='mysql://userName:pword...';
4

1 に答える 1