1

可能是一个简单的 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 没问题

提前致谢

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 回答