PHP / MySQL查询

乌达

经过数天的失败,我希望有更多熟练的人可以为我提供解决方案。

我有两个表,一个包含库存,另一个包含库存值。请,您不必评论字段类型等,因为这不是产品开发,我只想了解join和mysql别名。

-- Stocks table:

DROP TABLE IF EXISTS `stocks`;
CREATE TABLE `stocks` (
  `stock_id` int(11) NOT NULL AUTO_INCREMENT,
  `stock_name` varchar(255) DEFAULT NULL,
  PRIMARY KEY (`stock_id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;


-- Sample records:

INSERT INTO `stocks` VALUES ('1', 'HighTech');
INSERT INTO `stocks` VALUES ('2', 'NanoTech');
INSERT INTO `stocks` VALUES ('3', 'DotCom');
INSERT INTO `stocks` VALUES ('4', 'NewBiz');


-- Values table:
DROP TABLE IF EXISTS `vals`;
CREATE TABLE `values` (
  `vals_id` int(11) NOT NULL AUTO_INCREMENT,
  `stock_id` varchar(255) DEFAULT NULL,
  `stock_value` int(11) DEFAULT NULL,
  PRIMARY KEY (`vals_id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8;
-- Sample records:

INSERT INTO `vals` VALUES ('1', '1', '50');
INSERT INTO `vals` VALUES ('2', '1', '700');
INSERT INTO `vals` VALUES ('3', '1', '540');
INSERT INTO `vals` VALUES ('4', '3', '15');
INSERT INTO `vals` VALUES ('5', '3', '44');
INSERT INTO `vals` VALUES ('6', '1', '60');
INSERT INTO `vals` VALUES ('7', '2', '10');
INSERT INTO `vals` VALUES ('8', '3', '53');

可能有100支股票和1000支价值记录。

我想做的是将每张库存与单个(最新)库存值一起打印。对于库存编号3,我要回显“ DotCom”和最新值“ 53”,没有其他值。

机智的维奇

哦,是的,您的表名会在此处造成问题,请尝试将其更改为其他名称,例如vals或诸如此类。

这里是

 SELECT * FROM stocks S JOIN vals V ON V.vals_id = ( SELECT MAX(vals_id) FROM vals Va WHERE Va.stock_id = S.stock_id ) 

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章