我在选择最新记录时遇到了一些问题(最后一个记录已导入) 当我尝试从一个表中选择持续记录时,它不会真正选择最后一个 例如,如果我现在就跑:
SELECT * FROM Lat ORDER BY Lat DESC LIMIT 1
它会给我输出' XX.34148035'而不是' XX.34142197'(当我手动转到PMA的最后一页(7)时,我看到XX.34142197 ...)
所以我的想法是检查A_I选项并选择最高ID。 然后再次运行查询,
SELECT * FROM Lat ORDER BY ID DESC LIMIT 1
这次它有效,是的。 所以现在我对其他表做了完全相同的事情,但是当我运行查询时:
SELECT * FROM (Lat, Lng) ORDER BY ID DESC LIMIT 1
我收到错误:
Column 'ID' in order clause is ambiguous
我可以理解,但不知道修复...... 在此之后我被卡住了,谷歌搜索了很多,但它非常令人困惑...... 如果有人可以帮助我,或者给我一个提示,那将是非常好的...... 此外,我发现当我使用
SELECT * FROM Lat,Lng
输出结果为:
+-----+-------------+-----+------------+
| ID | Lat | ID | Lng |
+-----+-------------+-----+------------+
| 1 | XX.34123183 | 1 | XX.64095977 |
| 2 | XX.34128739 | 1 | XX.64095977 |
| 3 | XX.3412688 | 1 | XX.64095977 |
| 4 | XX.34127248 | 1 | XX.64095977 |
| 5 | XX.34126652 | 1 | XX.64095977 |
| 6 | XX.3412708 | 1 | XX.64095977 |
| 7 | 52.34127314 | 1 | XX.64095977 |
|//some record laters....(yes 181 is last)
| 179 | XX.34145865 | 1 | XX.64095977 |
| 180 | 52.34144137 | 1 | XX.64095977 |
| 181 | XX.34142197 | 1 | XX.64095977 |
| 1 | XX.34123183 | 2 | XX.64226005 |
| 2 | XX.34128739 | 2 | XX.64226005 |
| 3 | XX.3412688 | 2 | XX.64226005 |
| 4 | XX.34127248 | 2 | XX.64226005 |
我以为它会更像这样......
+-----+-------------+ +-----+-------------+
| ID | Lat | | ID | Lng |
+-----+-------------+ +-----+-------------+
| 1 | XX.34123183 | | 1 | XX.32535611 |
| 2 | XX.34128739 | | 2 | XX.32565655 |
| 3 | XX.3412688 | | 3 | XX.32525515 |
| 4 | XX.34127248 | | 4 | XX.325255555 |
我在这里做错了什么?
谢谢!
答案 0 :(得分:0)
如果查询中涉及两个或多个表,并且这些表包含相同的列名,则需要指定要对哪个表进行操作。歧义是因为Lat
和Lng
表都包含列ID
,并且查询处理器不知道用于排序结果的ID
。
例如,要按Lat
表格的ID
列排序,您需要将Lat.ID
指定为:
SELECT * FROM (Lat, Lng) ORDER BY Lat.ID DESC LIMIT 1
答案 1 :(得分:0)
SELECT
*
FROM
lat
JOIN
lng USING (id)
ORDER BY lat.id DESC
试试这个。你想加入表格