gpt4 book ai didi

php - 将 group by 和 min 子句与 inner join 一起使用时数据不一致

转载 作者:行者123 更新时间:2023-11-29 03:06:21 27 4
gpt4 key购买 nike

我正在尝试根据表中的开始时间获取即将发生的事件。让我们假设如下:实际上我们正在加入表格。在表 A 中,Locationid 是主键。我们正在加入另一个表以获取 field 名称。您可能认为我们有冗余数据,但事实并非如此。用户在不同的日子访问同一地点。

enter image description here

现在我只想显示即将到来的计划,即

locationid 2511 和 2515

这是我正在尝试的查询

 SELECT B.`VenueID` ,
A.rather_to_be_flying_now,
A.my_favorite,
A.Locationid,
MIN( A.start ) ,
MIN( A.end )
FROM tbl_userselectedlocations A
INNER JOIN tbl_Flyingapp_Venue B ON A.VenueID = B.VenueID
WHERE A.Pilotid = '709'
GROUP BY `VenueID`
ORDER BY A.my_favorite DESC , A.start

但此时我得到的数据不正确应该是

Locationid= 顺序分别是2511和2515,不是2514和2516 enter image description here

查询有问题吗?

尝试过内部查询。此处不使用 INNER JOIN 但结果值不同。

SELECT  A.Locationid, MIN(A.start), MIN(A.end)
FROM tbl_userselectedlocations A

WHERE A.Pilotid = '709'
group by VenueID
ORDER BY A.my_favorite DESC , A.start

最佳答案

尝试使用子查询为每个 field 找到所需的开始时间,然后通过自连接从该行中找到其余信息使用 venueID 和开始的值:

SELECT B.VenueID, A.rather_bo_be_flying_now, A.my_favorite,
A.Locationid, A.start, A.end
FROM (SELECT venueID, MIN(start) AS start
FROM tbl_userselectedlocations
GROUP BY venueID) AS Z
INNER JOIN tbl_userselectedlocations A
ON A.VenueID = Z.VenueID AND A.start = Z.start
INNER JOIN tbl_Flyingapp_Venue B
ON A.VenueID = B.VenueID
WHERE A.Pilotid = '709'
ORDER BY A.My_favorite DESC, A.start

关于php - 将 group by 和 min 子句与 inner join 一起使用时数据不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14583756/

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