gpt4 book ai didi

mysql - 使用左连接时限制右表结果

转载 作者:行者123 更新时间:2023-11-29 22:34:38 25 4
gpt4 key购买 nike

我读了很多关于这个主题的主题,但我无法弄清楚我的项目。我有两个表格,网格和点。 1 个网格可能有多个点,但是,我只想要点表的一个结果(多个点中的哪一个无关紧要),或者当该网格的点中没有条目时为 NULL。

通过查询:选择 g.id、g.latStart、g.latEnd、g.lngStart、g.lngEnd、p.teamId
FROM 网格 g LEFT JOIN 点 p ON p.gridId = g.id

我将收到所有网格条目的列表以及积分。然而结果并不是我想要的。

我还无法放置图像。这是 JSON 格式的结果,因为我无法放置图像:

{
"data":
[
{
"id": 1,
"latStart": "51.878347",
"latEnd": "4.388849",
"lngStart": "51.884847",
"lngEnd": "4.399849",
"teamId": 2
},
{
"id": 1,
"latStart": "51.878347",
"latEnd": "4.388849",
"lngStart": "51.884847",
"lngEnd": "4.399849",
"teamId": 2
},
{
"id": 1,
"latStart": "51.878347",
"latEnd": "4.388849",
"lngStart": "51.884847",
"lngEnd": "4.399849",
"teamId": 2
},
{
"id": 2,
"latStart": "51.878347",
"latEnd": "4.399849",
"lngStart": "51.884847",
"lngEnd": "4.410849",
"teamId": null
},
{
"id": 3,
"latStart": "51.878347",
"latEnd": "4.410849",
"lngStart": "51.884847",
"lngEnd": "4.421849",
"teamId": null
},
{
"id": 4,
"latStart": "51.878347",
"latEnd": "4.421849",
"lngStart": "51.884847",
"lngEnd": "4.432849",
"teamId": null
}
]
}

我收到了 id 为 1 的网格的三次,因为有三个点。如何将收到的积分限制为 1?我尝试过子查询,但无法让它们工作。

预先感谢您帮助我!

最佳答案

I only want one result of the points table (doesn't matter which of the multiple points) or NULL when there are no entries in points for that grid.

如果是这种情况,那么您可以分组并采用最小或最大 point.teamId

SELECT
g.id
, g.latStart
, g.latEnd
, g.lngStart
, g.lngEnd
, MAX(p.teamId) teamId
FROM grids g
LEFT JOIN points p ON p.gridId = g.id
GROUP BY
g.id
, g.latStart
, g.latEnd
, g.lngStart

关于mysql - 使用左连接时限制右表结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29591966/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com