mysql - 当他们使用 php 登录时,尝试对每个帐户进行唯一查询

标签 mysql sql

我在调整查询时遇到问题。这是我当前的查询:

SELECT tt.unit_id, tt.latitude, tt.longitude
FROM AA55 tt
INNER JOIN
(SELECT unit_id, MAX(entry_id) AS MaxEntryID
FROM AA55
GROUP BY unit_id) groupedtt 
ON tt.unit_id = groupedtt.unit_id 
AND tt.entry_id = groupedtt.MaxEntryID;

这会显示每个唯一设备的最新版本及其纬度/经度。我正在尝试向其添加仅显示从名为 device_link 的表中选择 user_id 的设备的功能。因此,如果有人登录他们的帐户,我只希望查询提取链接到他们帐户的设备。有什么想法吗?

最佳答案

有助于查看表之间关系的 ER 图之类的东西。基本上是这样的:

SELECT 
  tt.unit_id, 
  tt.latitude, 
  tt.longitude
FROM AA55 tt
LEFT JOIN device_link AS dl ON dl.id = unit_id
INNER JOIN (SELECT unit_id, MAX(entry_id) AS MaxEntryID FROM AA55 GROUP BY unit_id) AS groupedtt 
    ON tt.unit_id = groupedtt.unit_id 
    AND tt.entry_id = groupedtt.MaxEntryID
WHERE dl.user_id = ?;

正如我在评论中所说,您需要加入单元/设备/事物 ID,然后对用户 ID 施加约束。

关于mysql - 当他们使用 php 登录时,尝试对每个帐户进行唯一查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45824103/

相关文章:

mysql - 当此字段值 = 0 时,我尝试使用触发器自动更改字段值并收到 MySQL 错误

mysql如何合并/加入/完成信息从1行到同一表的其他行

mysql - 我们可以在 mysql 中使用 sum of in group_concat 吗?

mysql - 一个mysql查询的优化

sql - |DataDirectory| 在哪里定义?

mysql - 如何在 MySQL 的多列唯一约束中将时间跨度指定为键?

php - 我的 Ajax 没有将值传递到 php 页面

mysql - 将 MS-SQL Server 存储过程转换为 MySQL 查询

mysql innodb缓冲池不能分配超过43G

sql - 选择哪个数据库来记录用户事件