我不知道我是否正確描述了標題中的問題,但是在這裏。在MySQL數據庫中獲取特定字段爲最大的id列表
我有一個MySQL數據庫中的以下表:
路線點:
routepoint_id | route_id | latitude | longitude | location | routepoint_time
_________________|__________|________________|___________________|__________|__________________
24 | 38 | 9.32454363 | 10.65785453 | blah | 1232455678
25 | 38 | 56.72112300 | 11.40735700 | blah | 3324546454363
26 | 39 | 12.83276562 | 12.83276562 | blah | 54321325541
27 | 39 | 52.72112300 | 10.23400000 | blah | 64321325541
_________________|__________|________________|___________________|__________|__________________
| | | | |
和路線
route_id | user_id | creation_date
_______________|___________|________________
38 | 18 | 1243256576
39 | 16 | 3463468576543
_______________|___________|________________
| |
我所試圖做的是這樣的: 從選擇數據路由點表,其中route_point_time具有最大值的user_id的給定列表。
我試圖通過PHP和mysqli的,我給下面的查詢USER_ID陣列來實現這一目標:
$stmt = $this->con->prepare("SELECT routes.user_id, routepoints.latitude, routepoints.longitude, MAX(routepoints.routepoint_time) AS maxTime, users.status
FROM routepoints
INNER JOIN routes ON routepoints.route_id = routes.route_id
INNER JOIN users ON routes.user_id = users.user_id
WHERE routes.user_id IN ({$idArray})
GROUP BY routes.user_id");
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($user_id, $latitude, $longitude, $routePointTime, $status);
上面的查詢返回以下結果:
{
"status": true,
"friendsLocationList": [
{
"userId": 16,
"latitude": 12.83276562,
"longitude": 12.83276562,
"routePointTime": "64321325541",
"onlineStatus": 0
},
{
"userId": 18,
"latitude": 9.32454363,
"longitude": 10.65785453,
"routePointTime": "3324546454363",
"onlineStatus": 0
}
]
}
,你可以看,問題是它返回routepoint_time的最大值,但它不匹配關聯值的其餘部分(緯度,經度等)。
我該如何做到這一點?
我希望你明白我想達到的目標。任何幫助將不勝感激。
這個問題被問及經常回答,它只是無聊 – Strawberry
@Strawberry,指向重複,讓我們關閉問題。 – innoSPG
@innoSPG建立一個更好的規範問題系統,我會 – Strawberry