很简单,但很可能是错误的连接会产生MAX_JOIN_SIZE错误

时间:2013-01-24 12:44:36

标签: sql join

可能是一个简单的SQL查询,但仍在努力学习

以下查询正常运行:

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

这将返回大约30个结果。

这也运行良好:

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

这只返回一个

我正在尝试运行一个连接两个区域的查询,其中国家区域将提供区域代码列表,目的地将匹配这些区域代码与城镇的名称。我的查询如下:

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

但是我收到以下错误

  

1104 - SELECT将检查超过MAX_JOIN_SIZE行;检查你的WHERE并使用SET SQL_BIG_SELECTS = 1或SET MAX_JOIN_SIZE =#如果SELECT没问题

提前致谢

1 个答案:

答案 0 :(得分:2)

您可以使用

显示当前值
SHOW VARIABLES LIKE '%MAX_JOIN_SIZE%';

您可以使用以下命令进行更改:

SET MAX_JOIN_SIZE = 100

或完全跳过检查(在查询之前将其作为单独的命令运行):

SET SQL_BIG_SELECTS = 1

但我会首先检查为什么你的联合回报不止于此。它看起来不应该。 max_join_size的默认值为4294967295!