如何使用Mysql查询从表中获取最大记录数?
这是我的桌子。我想使用mysql查询获取存储在最近发布日期的url id。我尝试了下面的查询如何使用Mysql查询从表中获取最大记录数?,mysql,Mysql,这是我的桌子。我想使用mysql查询获取存储在最近发布日期的url id。我尝试了下面的查询 SELECT * FROM T1 GROUP BY url_id having MAX(url_post_date) 我希望输出如下: id url_id url_post_date ----------------------- 5 113 2014-03-14 19:21:00 4 111 2014-03-14 18:21:00 3 112 2014-03-14 19:20
SELECT * FROM T1 GROUP BY url_id having MAX(url_post_date)
我希望输出如下:
id url_id url_post_date
-----------------------
5 113 2014-03-14 19:21:00
4 111 2014-03-14 18:21:00
3 112 2014-03-14 19:20:00
如果有人能帮助我,我将不胜感激
谢谢。教人钓鱼法: 任务:针对每件商品,找到价格最贵的经销商 这个问题可以通过如下子查询解决:
SELECT article, dealer, price
FROM shop s1
WHERE price=(SELECT MAX(s2.price)
FROM shop s2
WHERE s1.article = s2.article);
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
| 0001 | B | 3.99 |
| 0002 | A | 10.99 |
| 0003 | C | 1.69 |
| 0004 | D | 19.95 |
+---------+--------+-------+
前面的示例使用了相关子查询,这可能是低效的(请参阅第13.2.10.7节“相关子查询”)。解决此问题的其他可能性是在FROM子句中使用不相关的子查询或左连接
不相关子查询:
SELECT s1.article, dealer, s1.price
FROM shop s1
JOIN (
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article) AS s2
ON s1.article = s2.article AND s1.price = s2.price;
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price
WHERE s2.article IS NULL;
左连接:
SELECT s1.article, dealer, s1.price
FROM shop s1
JOIN (
SELECT article, MAX(price) AS price
FROM shop
GROUP BY article) AS s2
ON s1.article = s2.article AND s1.price = s2.price;
SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.article = s2.article AND s1.price < s2.price
WHERE s2.article IS NULL;
选择s1.物品、s1.经销商、s1.价格
从s1店
在s1.article=s2.article和s1.price
左连接的工作原理是,当s1.price处于其最大值时,没有s2.price具有较大的值,s2行的值将为空。是否要获取最后三条记录ah?@SATSON他不希望url_id重复(111在当前输出中多次出现)
选择*
和分组依据
是一种危险的习惯-由anSOuser