1

おそらく単純な SQL クエリですが、まだ学習中のため苦労しています

次のクエリは正常に実行されます。

SELECT NationalArea. * 
FROM NationalArea
WHERE NationalArea.AreaCode =  '01922'

これにより、約 30 件の結果が返されます。

これもうまくいきます:

SELECT DestinationNames.Name
FROM `DestinationNames` 
WHERE DestinationNames.AreaCode = '01922'

これは1つだけを返します

ナショナル エリアが市外局番のリストを提供し、目的地がそれらの市外局番と町の名前を照合する 2 つを結合するクエリを実行しようとしています。私が持っているクエリは次のとおりです。

SELECT NationalArea.*, DestinationNames.Name
FROM NationalArea
JOIN DestinationNames
ON NationalArea.AreaCode=DestinationNames.AreaCode
WHERE NationalArea.AreaCode =  '01922'

しかし、次のエラーが表示されます

1104 - SELECT は MAX_JOIN_SIZE を超える行を調べます。WHERE を確認し、SELECT が問題ない場合は SET SQL_BIG_SELECTS=1 または SET MAX_JOIN_SIZE=# を使用します

前もって感謝します

4

1 に答える 1

2

で現在の値を表示できます

SHOW VARIABLES LIKE '%MAX_JOIN_SIZE%';

次の方法で変更できます。

SET MAX_JOIN_SIZE = 100

または、チェックを完全にスキップします (これをクエリの前に別のコマンドとして実行します)。

SET SQL_BIG_SELECTS = 1

しかし、最初に、あなたの結合がそれ以上の結果を返す理由を調べます。それはあるべきようには見えません。max_join_size のデフォルト値は 4294967295 です!

于 2013-01-24T12:53:06.647 に答える