我有一个关于mysql查询的问题。 所以这就是问题所在。 我有这种结构的表格。
categoryName | checkinDate | checkoutDate | roomPrice | roomService | insertTime. | updateTime
cat1 | 2015-05-12 | 2015-05-13 | 300,000 | breakfast | 2015-05-13 12:33:21 | 0-0-0 00:00:00
cat1 | 2015-05-12 | 2015-05-13 | 320,000 | wifi | 2015-05-13 12:33:22 | 0-0-0 00:00:00
cat1 | 2015-05-12 | 2015-05-13 | 350,000 | breakfast | 2015-05-13 12:33:22 | 2015-05-13 12:36:12
cat1 | 2015-05-12 | 2015-05-13 | 390,000 | wifi | 2015-05-13 12:33:22 | 2015-05-13 12:36:33
如何获取最新更新的数据:
cat1 | 2015-05-12 | 2015-05-13 | 320,000 | breakfast | 2015-05-13 12:33:22 | 2015-05-13 12:36:12
cat1 | 2015-05-12 | 2015-05-13 | 320,000 | wifi | 2015-05-13 12:33:22 | 2015-05-13 12:36:33
但需要注意的是,最新更新的cat1的最新列表并不总是与之前更新的cat1相同。
我怎样才能做到这一点。
我试过这个问题:
SELECT DISTINCT *
FROM mytable
WHERE hotel_id = 1
和
SELECT *
FROM mytable
WHERE hotel_id=1
AND in
(
select max(updatetime)
FROM mytable)
但不幸的是,他们两个都没有达到我的要求。
任何想法的人? 提前谢谢......
答案 0 :(得分:1)
试试这个..
SELECT t1.*
FROM table t1
LEFT JOIN table t2
ON t2.categoryname = t1.categoryname
AND t2.roomservice = t1.roomservice
AND t2.updatetime > t1.updatetime
WHERE t2.categoryname IS NULL
答案 1 :(得分:-1)
试试这个:
SELECT
categoryName,
checkinDate,
checkoutDate,
roomPrice,
roomService,
insertTime,
updateTime
FROM mytable
WHERE hotel_id=1
AND updateTime IS NOT NULL
ORDER BY updatetime ASC