【发布时间】:2020-05-13 03:33:54
【问题描述】:
我想进行一个查询,它不会从表 2 中获取两个 AAA BBB 值。每当我使用 JOIN 运行查询(我尝试了所有不同的连接)时,它都会在结果中给我重复的值( 001 - AAA 和 001 - BBB)。结果查询应该只有 3 个值 AAA CCC DDD。这甚至可能吗?
SELECT *, ST_AsGeoJSON(geom,5) AS geojson FROM table1
LEFT JOIN table2 ON table.id2=table2.id2
GROUP BY table.id2
我尝试了上面的查询,但它出错了。列“table2.Id2”必须出现在 GROUP BY 子句中或用于聚合函数中
table 1
id test
001 | A
002 | B
003 | C
007 | D
table2
id2(fk) test2
001 | AAA
001 | BBB
003 | CCC
007 | DDD
我对 SQL 还很陌生,所以我很抱歉。 任何帮助将不胜感激。 谢谢!
【问题讨论】:
-
您的预期输出是什么?
-
我让它与 SELECT DISTINCT 一起工作。有没有其他方法可以做到这一点?
-
可能有,但不清楚你真正想要什么。
-
请在代码问题中给出minimal reproducible example--cut & paste & runnable code,包括最小的代表性示例输入作为代码;期望和实际输出(包括逐字错误消息);标签和版本;明确的规范和解释。给出您可以给出的最少代码,即您显示的代码可以通过您显示的代码扩展为不正常。 (调试基础。)对于包含 DBMS 和 DDL(包括约束和索引)和输入为格式化为表的代码的 SQL。 How to Ask 停止尝试编写您的总体目标并从给定的代码中解释您的期望以及原因。
-
您的错误信息是一个常见问题。在考虑发布之前,请阅读您的教科书和/或手册和谷歌任何错误消息或您的问题/问题/目标的许多清晰、简洁和精确的措辞,有和没有您的特定字符串/名称和站点:stackoverflow.com 和标签;阅读许多答案。如果您发布问题,请使用一个短语作为标题。反映你的研究。请参阅How to Ask 和投票箭头鼠标悬停文本。 PS 请通过编辑而不是 cmets 澄清。
标签: sql postgresql join