我的表格ab_ws_zpt
包含以下列:WS_ID
,ZPT_ID
,abstand
。
Data of "ab_ws_zpt"这只是整个数据的简短摘要。 WS_ID
上升到43,完全有600.000 ZPT_ID´s
。
我尝试从WS_ID
的特定选项中选择具有最小abstand的行中的ZPT_ID
。
当我从整个表ab_ws_zpt
中选择最小的abstand时,它起作用:
SELECT
WS_ID, ZPT_ID, abstand
FROM
ab_ws_zpt
WHERE
abstand = (SELECT MIN(abstand) from ab_ws_zpt);`
带来的结果为:Result of select
当我只选择一个特殊WS_ID
的所有ZPT_ID
时,它也有效:
SELECT
WS_ID, ZPT_ID, abstand
FROM
ab_ws_zpt
WHERE
ZPT_ID = '70000003';
WS_ID
70000003的所有43 ZPT_ID
会产生结果。
现在我尝试将两个语句组合成:
SELECT
WS_ID, ZPT_ID, abstand
FROM
ab_ws_zpt
WHERE
abstand = (SELECT
MIN(abstand)
FROM
(SELECT
WS_ID, b.ZPT_ID, abstand
FROM
ab_ws_zpt
WHERE
ZPT_ID = '70000003'));
数据库返回errorcode 1248
:每个派生表都必须有自己的别名。
我尝试在两个选择中为表提供不同的别名,但错误仍然存在。我希望有人可以帮助我并纠正我的错误,或者告诉我另一种方式来获得我想要的东西。
这是我在这里的第一个问题,所以如果我的解释具有误导性,我很抱歉。我尽力使其易于理解。
答案 0 :(得分:1)
请试一试:
SELECT
WS_ID, ZPT_ID, abstand
FROM
ab_ws_zpt
WHERE
ZPT_ID = '70000003'
ORDER BY abstand ASC
LIMIT 1;