mysql取最大一条数据,mysql取出表中,某字段值最大的一条纪录,sql语句
一個為交易表,有唯一id,別名trade_id
一個為交易狀態詳情表,記錄trade_id的多個狀態。
進行了兩個表查詢。查詢某個trade_id的交易情況及最新狀態。
直接粘貼此sql,執行即知。
-- ----------------------------
-- Table structure for `trade_test`
-- ----------------------------
DROP TABLE IF EXISTS `trade_test`;
CREATE TABLE `trade_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL COMMENT ‘用戶ID‘,
`create_at` int(11) NOT NULL COMMENT ‘創建時間‘,
`totalmoney` decimal(10,2) NOT NULL COMMENT ‘總金額‘,
`tid` int(11) NOT NULL COMMENT ‘交易編號‘,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT=‘交易發起表‘;
-- ----------------------------
-- Records of trade_test
-- ----------------------------
INSERT INTO `trade_test` VALUES (‘1‘, ‘1‘, ‘1451700000‘, ‘60.00‘, ‘1111‘);
INSERT INTO `trade_test` VALUES (‘3‘, ‘2‘, ‘1451800000‘, ‘50.00‘, ‘2222‘);
DROP TABLE IF EXISTS `status_detail_test`;
CREATE TABLE `status_detail_test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`trade_id` int(11) NOT NULL,
`status_name` varchar(10) DEFAULT NULL,
`brief` text COMMENT ‘狀態說明‘,
`create_at` int(11) DEFAULT NULL COMMENT ‘創建時間‘,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=12 DEFAULT CHARSET=utf8 COMMENT=‘交易狀態詳情表‘;
-- ----------------------------
-- Records of status_detail
-- ----------------------------
INSERT INTO `status_detail_test` VALUES (‘1‘, ‘1‘, ‘START‘, null, ‘1453595414‘);
INSERT INTO `status_detail_test` VALUES (‘2‘, ‘1‘, ‘AGREE‘, null, ‘1453595753‘);
INSERT INTO `status_detail_test` VALUES (‘3‘, ‘2‘, ‘START‘, null, ‘1453898857‘);
INSERT INTO `status_detail_test` VALUES (‘4‘, ‘2‘, ‘AGREE‘, null, ‘1453941720‘);
INSERT INTO `status_detail_test` VALUES (‘5‘, ‘2‘, ‘PAY‘, null, ‘1453941924‘);
INSERT INTO `status_detail_test` VALUES (‘6‘, ‘1‘, ‘PAY‘, null, ‘1453942924‘);
INSERT INTO `status_detail_test` VALUES (‘7‘, ‘1‘, ‘TRANSFER‘, null, ‘1455564464‘);
INSERT INTO `status_detail_test` VALUES (‘8‘, ‘1‘, ‘COMPLETE‘, null, ‘1455670471‘);
SELECT
a.id as trade_id,
a.create_at as trade_create_at,
b.id as status_final_id,
b.status_name,
b.create_at as status_create_at
FROM
trade_test AS a ,
status_detail_test AS b
WHERE
b.trade_id = a.id
AND
b.create_at = (select max(create_at) from status_detail_test)
AND
a.id = 1
--
引用一簡單的例子:
http://zhidao.baidu.com/link?url=15DnazEMsBVsoIs_M-WiFfLjt-YI8tEtuvL2yN7aEDe3x8cr4u_OgpgyUy1vJ4Pas3zzhZpQsY1fGs-KdFnI-q
例如:表字段
id,name,age,
要求:取出所有年齡最大的一個紀錄
select top 1 id,name,age from 表 order by age desc
按照年齡倒序排序,然后取第一條。
考慮可能有多人年齡相同,如果都需取出,可以這樣寫:
select id,name,age from 表 where age=(select max(age) from 表)
時間: 02-18
總結
以上是生活随笔為你收集整理的mysql取最大一条数据,mysql取出表中,某字段值最大的一条纪录,sql语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自由轴法 matlab,一种自由轴法RL
- 下一篇: html5中rb标签指的是什么意思