0

Like を使用すると、アクセスがスタックする

SELECT ox.*, '+++++++++++' AS judo, sh2.*
FROM OXUS AS ox INNER JOIN Sheet2 AS sh2 ON sh2.ID_P LIKE "*" & ox.ID_P;

私が使用する場合

SELECT ox.*, '+++++++++++' AS judo, sh2.*
FROM OXUS AS ox INNER JOIN Sheet2 AS sh2 ON sh2.ID_P=ox.ID_P;

すぐに開いた。

4

2 に答える 2

1

この場合、暗黙の結合、つまりWHEREを使用できます。

SELECT DISTINCT ox.P_ID, '+++++++++++' AS judo, sh2.P_ID
FROM OXUS AS ox, Sheet2 AS sh2
WHERE Instr(sh2.P_ID, ox.P_ID)>0

ただし、これは行の検索にのみ役立ちます。

于 2012-08-13T09:27:50.063 に答える
0

最初のステートメントは、一致する ID に基づくテーブル間の直接結合です。インデックスも関係していると思われます。2 番目のステートメントは、ワイルド カードを使用してテーブルを結合し、ID に連結されているすべてと何でも (!) をチェックします。また、タイプに応じて int から varchar に変換することもできます....すべてインデックスを使用しません。

like ステートメントは、特定の一致について列の内容を個別にチェックする必要があるため、常にコストが高くなります。結合の一部としてそれらを使用することはお勧めできません。

like ステートメントは意味をなさないため、これは実際の問題を切り詰めたものだと思います。

何を達成しようとしていますか?

于 2012-08-13T05:33:42.670 に答える