我无法获得我认为非常简单的查询。我设法编写了我的基本查询,但是当我在第三个表上尝试另一个连接时,它返回一个空结果。
以下是正在运作的代码:
SELECT
*
FROM "Locations" AS r
LEFT OUTER JOIN "Units" AS f
ON r.city = f.city AND
r.area = f.region
WHERE
ST_Contains(
ST_SetSRID(r.geom, 4326),
ST_SetSRID(ST_MakePoint(
-75.9165573, 45.3416112
), 4326)
)
那些给我带来麻烦的代码:
SELECT
*
FROM "Locations" AS r
LEFT OUTER JOIN "Units" AS f
ON r.city = f.city AND
r.area = f.region
LEFT OUTER JOIN "UnitDetails" AS fr
ON fr."UnitId" = f.id
WHERE
ST_Contains(
ST_SetSRID(r.geom, 4326),
ST_SetSRID(ST_MakePoint(
-75.9165573, 45.3416112
), 4326)
)
UnitId是外键。我也尝试使用而不是ON,但我不明白Postgres是如何找到正确结果的。列中包含了列,但它们都是空结果。
我来自MySQL,所以我想知道这是否只是一种语法,我还没有到达。
注意:如果我删除了was语句,它就能完美运行。只要我添加它......它就不再有用了。
答案 0 :(得分:0)
这最终与一个我无法完全解释的奇怪的索引问题有关。查询确实很完美,这非常烦人。